Я постараюсь прояснить это насколько возможно, но этот вопрос кажется мне загадкой. У меня есть приложение ASP.NET MVC (.NET 4.6.1) с использованием EF и ASP.NET Identity. Это приложение работало нормально еще несколько часов назад. Я вносил небольшие изменения, но теперь, когда я запускаю приложение, я получаю следующую ошибку:
"Keyword not supported: 'mssqllocaldb; attachdbfilename'."
Что интересно, этих ключевых слов нет в моем web.config. Моя строка подключения тоже не изменилась, на самом деле я даже не уверен, как мои изменения могли это сломать.
Использует ли EF или ASP.NET Identity какую-либо конфигурацию из другого места, которого нет в моем проекте?
Любое руководство или помощь будут приняты с благодарностью.
Спасибо!
Ниже мой web.config
<?xml version = "1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<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 = "***" connectionString = "Server=***;Initial Catalog=***;Persist Security Info=True;User ID=***;Password=***" providerName = "System.Data.SqlClient"/>
</connectionStrings>
<appSettings>
<add key = "webpages:Version" value = "3.0.0.0"/>
<add key = "webpages:Enabled" value = "false"/>
<add key = "ClientValidationEnabled" value = "true"/>
<add key = "UnobtrusiveJavaScriptEnabled" value = "true"/>
</appSettings>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework = "4.5" />
</system.Web>
-->
<system.web>
<authentication mode = "None"/>
<compilation debug = "true" targetFramework = "4.6.1"/>
<httpRuntime targetFramework = "4.5"/>
<httpModules>
<add name = "ApplicationInsightsWebTracking" type = "Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/>
</httpModules>
</system.web>
<system.webServer>
<modules>
<remove name = "FormsAuthentication"/>
<remove name = "TelemetryCorrelationHttpModule"/>
<add name = "TelemetryCorrelationHttpModule" type = "Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition = "integratedMode,managedHandler"/>
<remove name = "ApplicationInsightsWebTracking"/>
<add name = "ApplicationInsightsWebTracking" type = "Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition = "managedHandler"/>
</modules>
<validation validateIntegratedModeConfiguration = "false"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns = "urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name = "Microsoft.Owin.Security" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-4.0.0.0" newVersion = "4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "Microsoft.Owin.Security.OAuth" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-4.0.0.0" newVersion = "4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "Microsoft.Owin.Security.Cookies" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-4.0.0.0" newVersion = "4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "Microsoft.Owin" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-4.0.0.0" newVersion = "4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "Antlr3.Runtime" publicKeyToken = "eb42632606e9261f"/>
<bindingRedirect oldVersion = "0.0.0.0-3.5.0.2" newVersion = "3.5.0.2"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "System.Diagnostics.DiagnosticSource" publicKeyToken = "cc7b13ffcd2ddd51"/>
<bindingRedirect oldVersion = "0.0.0.0-4.0.2.1" newVersion = "4.0.2.1"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "System.Web.Optimization" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-1.1.0.0" newVersion = "1.1.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "WebGrease" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-1.6.5135.21930" newVersion = "1.6.5135.21930"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "Newtonsoft.Json" publicKeyToken = "30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion = "0.0.0.0-11.0.0.0" newVersion = "11.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "System.Web.Helpers" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-3.0.0.0" newVersion = "3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "System.Web.Mvc" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-5.2.4.0" newVersion = "5.2.4.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name = "System.Web.WebPages" publicKeyToken = "31bf3856ad364e35"/>
<bindingRedirect oldVersion = "0.0.0.0-3.0.0.0" newVersion = "3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type = "System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value = "mssqllocaldb"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName = "System.Data.SqlClient" type = "System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
<system.codedom>
<compilers>
<compiler language = "c#;cs;csharp" extension = ".cs" type = "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel = "4" compilerOptions = "/langversion:default /nowarn:1659;1699;1701"/>
<compiler language = "vb;vbs;visualbasic;vbscript" extension = ".vb" type = "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel = "4" compilerOptions = "/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
</configuration>
добавил несколько poco, некоторые изменения вида и добавил новый объект в заявку. Я вернул часть кода, но безуспешно.
Я бы спрятал ваши изменения и полностью отменил бы, а затем медленно повторно вводил бы изменения, пока вы не вызовете их снова. Я не уверен, что ответ можно определить исключительно из того, что предусмотрено в вопросе. Я вижу несколько дубликатов, но ни у одного из них нет принятого ответа, так что это бесполезно :(





Удалите это в своем web.config
<defaultConnectionFactory type = "System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value = "mssqllocaldb"/>
</parameters>
</defaultConnectionFactory>
Если вы обновили EF, он, возможно, прочитал его. Это должно работать, только если у вас нет строки подключения ...
или измените его на:
<defaultConnectionFactory type = "System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName = "System.Data.SqlClient" type = "System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
Достаточно интересно, и после многих часов разочарования .... причина этой ошибки была в создании «виртуального каталога». Как только виртуальный каталог был удален, сайт снова стал нормально работать. Не знаю, как и почему это вызывает проблему. Надеюсь, это поможет кому-то другому в будущем.
Вероятно, у вас есть web.config в папке wwwroot того места, куда IIS указывает для веб-сайта по умолчанию, и что он загружается.
Первое ключевое слово,
mssqllocaldb, присутствует в вашем web.config. Какие изменения вы внесли? Если вы их отмените, вы все равно получите ошибку?