2016-09-12 5 views
1

AzureのAzure SQLデータベースでRazorサイトを実行していますが、使用していないApp_Data localdbに接続できないという接続エラーメッセージが表示され始めました。私も、私のプロジェクトが親切にも、私にローカルdbを再作成したことに気づきました。私はAspアイデンティティテーブルを私のAzureデータベースに移行しました。それで、すべてが幸運にも1つの場所にあります(これは良い考えですか?それは私のようでした)。とにかく。私の知る限り、私のプロジェクトにlocaldbへの参照はないので、localdbのメッセージは私を混乱させました。 - これがない変換または出版の接続文字列ConnectionStringsどこから来たのですか? Asp.net

私はクーズーでこれらをチェックしましたし、それはサイトの実際のweb.configファイルにあるものである:私のweb.configファイルには、2つの接続文字列を持っていますある。しかし、私は最後の2は私のweb.configファイルからのものではない2、私は4つの接続文字列を参照してください紺碧のデバッグと ConfigurationManager.ConnectionStringsを見れば、第二は空白で、第一のように読み取ります

data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true} 

私はできませんどのように、どこでこれが使われているのだろうか?

しかし、見ているのはConfigurationManager.ConnecitonStrings[DefaultConnection]です。です。私のdbモデルは次のように初期化されます:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection", throwIfV1Schema: false) 
    { 
    } 

    public static ApplicationDbContext Create() 
    { 
     return new ApplicationDbContext(); 
    } 
    ... 

これはかなり平穏です。すべてがこのようになったら、サイト全体のSSLを有効にしようとしていたことに言及する価値があります。私はこの問題は

は、ここで私が見ているエラーの詳細です:(持続し、まだそのコードを削除しました:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

SQLExpress database file auto-creation error:

The connection string specifies a local Sql Server Express instance using a database location within the application's App_Data directory. The provider attempted to automatically create the application services database because the provider determined that the database does not exist.

私のweb.configファイル:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://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="DefaultConnection" connectionString="data source=tcp:myweb.database.windows.net,1433;initial catalog=mywebtest;user id=myStdMobile;password=dfdfd;multipleactiveresultsets=True;connect timeout=30;encrypt=True;trustservercertificate=False;application name=EntityFramework" providerName="System.Data.SqlClient" /> 
     <add name="DeveloperConnection" connectionString="data source=tcp:myweb.database.windows.net,1433;initial catalog=mywebtest;user id=myWebDbAdmin;password=fdfd;multipleactiveresultsets=True;connect timeout=30;encrypt=True;trustservercertificate=False;application name=EntityFramework" 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" /> 

    <add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mydbstorage;AccountKey=7Ukljdslkjasdfjkdasfkj==" /> 

    </appSettings> 

    <system.web> 
    <customErrors mode="Off" /> 

<roleManager 
    enabled="true" 
    cacheRolesInCookie="true" > 
</roleManager> 

     <authentication mode="None" /> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" maxRequestLength="10240" executionTimeout="3600" /> 
     <globalization culture="en-GB" /> 
    </system.web> 
    <system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="10485760" /> 
     </requestFiltering> 
    </security> 

    <modules> 
     <remove name="FormsAuthentication" /> 
    </modules> 
    <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> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.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.5.2.14234" newVersion="1.5.2.14234" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="PdfSharp" publicKeyToken="f94615aa0424f9eb" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.32.2608.0" newVersion="1.32.2608.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <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=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> 
    </compilers> 
    </system.codedom> 

    <location path="answers"> 
     <system.web> 
      <authorization configSource="myadmin.config" /> 
     </system.web> 
    </location> 

    <location path="audits"> 
     <system.web> 
      <authorization configSource="myadmin.config" /> 
     </system.web> 
    </location> 

    <location path="candidates"> 
     <system.web> 
      <authorization configSource="myadmin.config" /> 
     </system.web> 
    </location> 

    <location path="vCandidateTables"> 
     <system.web> 
      <authorization configSource="members.config" /> 
     </system.web> 
    </location> 

    <location path="documents"> 
     <system.web> 
      <authorization configSource="members.config" /> 
     </system.web> 
    </location> 

    <location path="companies"> 
     <system.web> 
      <authorization configSource="myadmin.config" /> 
     </system.web> 
    </location> 

    <location path="questions"> 
     <system.web> 
      <authorization configSource="myadmin.config" /> 
     </system.web> 
    </location> 

    <location path="users"> 
     <system.web> 
      <authorization configSource="myadmin.config" /> 
     </system.web> 
    </location> 

</configuration> 

更新
私のエラー - 私はそれを無効にすると、役割の管理と一緒に、しかしそれでも!それはステップです...

+0

あなたの 'machine.config'には何がありますか? –

+0

私はアズールが持っているとは思いませんか? – noelicus

+0

ですが、これらは削除されています。あなたのweb.configをここに投稿できますか?これらは、新しいアプリケーションを作成するときにVisual Studioプロジェクトウィザードが設定する既定の接続文字列エントリです。 EntityFramework自体の設定セクションでは非表示にすることができます。 – astaykov

答えて

0

私の問題に対する答えは、<roleManager>がASP.NET ID 2を参照していると信じていたということでした。彼らは同じではありません!<roleManager>は古いバージョンのID管理を有効にしてから、<roleManager>要素のデフォルト値はlocaldbです。だから...余分な接続文字列がどこから来るのか。

<roleManager 
     enabled="true" 
     cacheRolesInCookie="true" 
     defaultProvider="OurSqlRoleProvider" 
    > 
     <providers> 
      <add 
      connectionStringName="DefaultConnection" 
      applicationName="/" 
      name="OurSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider" /> 
     </providers> 

    </roleManager> 
:私はこの私がそうのように、自分のデータベースを指すように私のweb.configファイルを更新した後は

<roleManager 
    enabled="false" 
    cacheRolesInCookie="false" 
    cookieName=".ASPXROLES" 
    cookieTimeout="30" 
    cookiePath="/" 
    cookieRequireSSL="false" 
    cookieSlidingExpiration="true" 
    cookieProtection="All" 
    defaultProvider="AspNetSqlRoleProvider" 
    createPersistentCookie="false" 
    maxCachedResults="25"> 
    <providers> 
     <clear /> 
     <add 
     connectionStringName="LocalSqlServer" 
     applicationName="/" 
     name="AspNetSqlRoleProvider" 
     type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <add 
     applicationName="/" 
     name="AspNetWindowsTokenRoleProvider" 
     type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </providers> 
</roleManager> 

:ここ<roleManager>はアズールからの効果的なのmachine.config(providers -> connectionStringNameに注意してください)にどのように見えるかです

...しかし、これは単にrolemanagerは、ASPのアイデンティティではなくASP.NETアイデンティティ2.

(小さな点が、私が見つけた道の古い形式ですので、これだった Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'の新しいエラーが発生しましたこのエラーはソース管理、再構築、そしてどの変更がそれを壊したかを見ることを暗示します。)

関連する問題