0

asp .net2.0Webアプリケーションがあります。ローカルマシンでは正常に動作します。ホスティングプロバイダーにWebサイトを公開しましたが、次のエラーが発生します。

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)

web.configファイルの設定は次のとおりです。

 <membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
  </providers>
</membership>

<add name="classifiedsConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CLASSIFIEDSDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

すべてのmdfldfファイルがホストにアップロードされます。stackoverflowで多くの同様の質問を確認しましたが、解決策は役に立ちませんでした。このようにsqlexpressを使用するのは間違っていますか?この問題を解決するにはどうすればよいですか?

どんな助けでもいただければ幸いです。どうもどうも。

編集:

web.configファイルにLocalSQLServer接続文字列がありません。しかし、私がこの接続文字列を追加しようとしたことを確認するために

<add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

しかし、結果は変わりませんでした。

Edit2:

プロバイダーの接続文字列を更新したところ、web.configファイルは次のようになりました。

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <location path="Admin">
    <system.web>
      <authorization>
        <allow roles="Administrators"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="PostAd.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
  <location path="EditPhotos.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
  <location path="MyAds.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
  <location path="MyProfile.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
  <system.web>
    <customErrors mode="Off"/>
    <pages styleSheetTheme="Red"/>
    <authentication mode="Forms"/>
    <membership>
      <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider"
           type="System.Web.Security.SqlMembershipProvider, System.Web,     Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
           connectionStringName="membershipConnection"
           enablePasswordRetrieval="false"
           enablePasswordReset="true"
           requiresQuestionAndAnswer="true"
           applicationName="/"
           requiresUniqueEmail="true"
           passwordFormat="Hashed"
           maxInvalidPasswordAttempts="5"
           minRequiredPasswordLength="7"
           minRequiredNonalphanumericCharacters="1"
           passwordAttemptWindow="10"
           passwordStrengthRegularExpression=""/>
    </providers>
    </membership>
    <profile enabled="true">
      <properties>
        <add name="FirstName" type="System.String"/>
        <add name="LastName" type="System.String"/>
        <add name="MemberId" defaultValue="0" type="System.Int32"/>
        <group name="Core"/>
      </properties>
    </profile>
    <roleManager enabled="true"/>
    <compilation debug="true"/>
    <siteMap defaultProvider="RoleEnabled_AspNetXmlSiteMapProvider" enabled="true">
      <providers>
        <clear/>
        <add name="RoleEnabled_AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/>
      </providers>
    </siteMap>
  </system.web>
  <connectionStrings>
    <add name="classifiedsConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CLASSIFIEDSDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
<add name="membershipConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>      
</configuration>

aspnetdb.mdfファイルとclassifieds.mdfファイルがmayapp_dataフォルダーにありますが、それでも機能しません。取得するエラーの全文は次のとおりです。

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)「」

4

3 に答える 3

3

@BrianRのアドバイスは良いです(メンバーシップ構成が存在しない接続文字列を指していました)。

ただし、それに加えて、この質問は実際にはホスティングプロバイダーに固有であり、スタックオーバーフローに関連することはできません。テクニカルサポートを介してホスティングプロバイダーに直接連絡する必要があります。

表示されているエラーは、IIS/ASP.netがSqlServerを見つけられないことを意味します。これは、接続文字列またはホストWebサーバーのいずれかの設定ミスの結果です。そのため、この質問はホストに固有のものであり、Googleでこの質問を見つける可能性のある他のユーザーには適用されません。ホストごとに異なります。

  • 一部のホストには完全なSqlServerがインストールされ、一部のホストにはSqlExpressのみがインストールされます。フルバージョンのSqlServerは、同じデフォルトのインスタンス名でインストールされないため、他の構成の違いがある場合があります。
  • 一部のホストは、セキュリティ上の理由またはその他のシステム管理上の理由から、インスタンス名を「SQLEXPRESS」などのデフォルトから変更する場合があります。(SqlExpressがインストールされている場合でも、必ずしも「./SQLEXPRESS」からアクセスできるとは限りません)
  • 一部のホストは独立したデータベースサーバー(Webサイトと同じWindowsサーバーインスタンス上ではない)を使用しており、それにアクセスするには、マシンパス、IPアドレス、ポート番号、セキュリティ資格情報、またはその他の詳細を含める必要がある場合があります。その場合、ホストはこの情報を提供します。文書化されている場合もありますが、一部の小規模なホストでは、サポートチケットの提出が必要になる場合があります(疑わしい場合は、サポートチケットを入手してください)。

ホストごとにこれらの潜在的な構成の違いがあるため、実際にそれらに連絡する必要があります。この目的のためにテクニカルサポートが含まれている可能性があります。

編集#1

その後の質問の編集では、上記の情報は変更されませんでした。SqlServerに接続できないことを示唆するエラーが引き続き発生します。SqlExpressがインストールされていること、SqlServerにアクセスするための正しい資格情報/権限があること、および2つのデータベースファイルが実際に正しい場所に正しい権限で存在することをホスティングプロバイダーに確認する必要があります。

間違ったデータベーススキーマがあったとしても、この特定のエラーは発生しません。したがって、SQLServer / SqlExpressの構成、データファイル、およびWeb/configに関連している必要があります。これらの設定はホストに固有のものであり、stackoverflowで一般的に回答できるものではありません。

于 2012-07-30T04:39:32.667 に答える
2

メンバーシッププロバイダー情報内で、connectionStringNameを「classifiedsConnection」に変更する必要があります。また、CLASSIFIEDSDB.mdfファイルが実際にホストのApp_Dataフォルダーにあることを確認してください。

<membership defaultProvider="AspNetSqlMembershipProvider">
   <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider"
           type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
           connectionStringName="classifiedsConnection"
           enablePasswordRetrieval="false"
           enablePasswordReset="true"
           requiresQuestionAndAnswer="true"
           applicationName="/"
           requiresUniqueEmail="true"
           passwordFormat="Hashed"
           maxInvalidPasswordAttempts="5"
           minRequiredPasswordLength="7"
           minRequiredNonalphanumericCharacters="1"
           passwordAttemptWindow="10"
           passwordStrengthRegularExpression=""/>
    </providers>
</membership>
于 2012-07-27T21:00:39.430 に答える
2

ホスティングプロバイダーにSQLExpressがインストールされていない可能性があります。(SQLExpressはdot.netフレームワークの一部ではなく、別の製品です。)

于 2012-07-27T21:09:05.193 に答える