サーバーでホストされている Web API に基本認証を使用しています。基本認証を使用して、ローカルで正常に動作します。しかし、サーバーにホストすると、次のエラーが発生します
* {"メッセージ":"エラーが発生しました。","ExceptionMessage":"SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しく、SQL Server がリモート接続を許可するように構成されていること (プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL への接続を開けませんでした *
また、基本認証を削除しても、サーバー上で正常に動作します。
私の接続文字列
<connectionStrings>
<add name="DefaultConnection" connectionString="Password=password;Persist Security Info=True;User ID=wbuser;Initial Catalog=WinBouts_com;Data Source=WINBOUTSAPIVM"
providerName="System.Data.SqlClient" />
<add name="WinBoutsConnectionString" connectionString="Password=password;Persist Security Info=True;User ID=wbuser;Initial Catalog=WinBouts_com;Data Source=WINBOUTSAPIVM"
providerName="System.Data.SqlClient" />
基本認証にsystem.web.providersを使用しているので、web.configでこれを見つけました
<!--
If you are deploying to a cloud environment that has multiple web server instances,
you should change session state mode from "InProc" to "Custom". In addition,
change the connection string named "DefaultConnection" to connect to an instance
of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express.
-->
<sessionState mode="Custom" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="WinBoutsConnectionString" />
</providers>
</sessionState>
モードをカスタムに変更しましたが、接続文字列が SQL Server Express ではなく SQL Server に接続されていると思いますか?? それについてはわかりません!
そして興味深いことに、「属性は許可されていません」というエラーが connectionStringName に表示されますか? しかし、私のローカル VM では、そのようなエラーはスローされず、ローカル VM で基本認証が正常に機能していると思います。
どこが間違っているのか教えてください。どんな提案でも大歓迎です。私は一日中それについて頭を叩いています:(