2014-02-12 3 views
0

Я играю с приложением HotTowel от John Papa. В примере HotTowel используется локальная база данных codecamper.sdf, и я пытаюсь настроить ее для использования базы данных на сервере sql 2008 r2. Когда я запускаю приложение, я получаю сообщение об ошибке «Исключение типа« System.InvalidOperationException »произошло в Breeze.ContextProvider.EF6.dll, но не было обработано в коде пользователя». Ошибка возникает в CodeCamperRepository.cs в строке, которая говорит «get {return _contextProvider.Metadata()» код. Внутреннее исключение говоритПроблема с настройкой web.config для использования базы данных SQL Server

The connection string 'CodeCamper' in the application's configuration file does not contain the required providerName attribute." 

У меня есть следующий код в файле web.config, но я не уверен, если это правильно:

<configuration> 
     <configSections> 
      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </configSections> 
     <connectionStrings> 
      <add name="CodeCamper" connectionString="Data Source=testdb\cmstest; Integrated Security=True; MultipleActiveResultSets=True" /> 
     </connectionStrings> 
     <system.web> 
      <compilation debug="true" targetFramework="4.5" /> 
      <httpRuntime targetFramework="4.5" /> 
     </system.web> 
     <entityFramework> 
      <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
      <parameters> 
       <parameter value="Data Source=testdb\cmstest; Integrated Security=True; MultipleActiveResultSets=True" /> 
      </parameters> 
     </defaultConnectionFactory> 
      <providers> 
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
     </providers> 
     </entityFramework> 
     <system.webServer> 
      <handlers> 
       <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
       <remove name="OPTIONSVerbHandler" /> 
       <remove name="TRACEVerbHandler" /> 
       <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
      </handlers> 
     </system.webServer> 
     </configuration> 

Есть ли какие-либо другие изменения, которые я должен смотреть на то, чтобы сделать HotTowel подключиться к Сервер Sql? что не нравится бриз в настройке? Цените любое понимание.

благодарит сообщество нп

ответ

2

Так же, как внутреннее исключение говорит: вам нужен атрибут providerName. Таким образом изменить ConnectionStrings раздел на:

<connectionStrings> 
    <add name="CodeCamper" connectionString="Data Source=testdb\cmstest; Integrated Security=True; MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 
+0

Да, я тоже пробовал это, как раз перед вами. Теперь он устраивает не нравится источник данных – Nick

+0

Новое сообщение, которое я получаю Исключение типа «System.ArgumentException» произошло в Breeze.ContextProvider.EF6.dll, но не обрабатывалось в коде пользователя Дополнительная информация: Ключевое слово not поддерживается: «источник данных». – Nick

+0

Эта ошибка может быть из параметров раздела 'defaultConnectionFactory'. –

0

Просто проверяю, но у вас есть ссылка соединения CodeCamper в вашем DbContext contstructor?

public CCDbContext() 
     : base("CodeCamper"){ } 
+0

да я. Вот код, я имею в 'имен CC.DataAccess CodeCamperDbContext.cs { общественного класса CodeCamperDbContext: DbContext» { общественного CodeCamperDbContext() : базовый (nameOrConnectionString: "CodeCamper") {} ' – Nick

+0

жаль код не отформатирован правильно. Я вставляю 4 пробела, но не отображает код в блоке. – Nick

Смежные вопросы