非常に小さなテストを行う、ソースコード
データベース (SQLAzure) があり、EF5 を使用しています。
私のプロジェクトでは、次を作成します。
- 「WCF WebRole」を使用した「クラウド」プロジェクト
- ローカル コンピューターで自分の DB をテストするためのテスト プロジェクト
- デプロイされた WCF サービスをテストするためのテスト プロジェクト
私のサービスには2つの方法があります:
- 最初の名前
Hello
は文字列「hello」を返すだけです - 2 番目は を返します
int
。これint
は、テーブルのレコード数です。
ローカルの WCF サービスでテストしましたが、どちらの方法でも問題ありません。
Azure の場合:
- SQLAzure データベースを作成し、テーブルとデータを設定して、「SQL Management studio 2012」からデータベースに参加できます
- 「Pointage」という名前の Web サイト
VS2012 から:
- WebRole プロジェクト (プロジェクトで "PointageOnAzureWcfWebRole" という名前が付けられています) を発行 ("Azure に発行") しました。サービスを確認できます:ここにリンクの説明を入力してください
- (AzureOnline.Test を使用して) テストすると、メソッド
Hello()
は正しい値を返し、エラーはありませんが、試してみると、次のエラーがNumberOfUser()
発生します。
System.ServiceModel.FaultException : 内部エラーのため、サーバーは要求を処理できませんでした。エラーの詳細については、サーバーで (ServiceBehaviorAttribute または構成動作のいずれかから) IncludeExceptionDetailInFaults をオンにして、例外情報をクライアントに送り返すか、Microsoft .NET Framework SDK のドキュメントに従ってトレースをオンにし、サーバーのトレース ログを調べます。
connectionsgtstring は正しいです。「SQL Management Studio」のものと同じものを使用します。名前は web.config と同じです。
何が起こっているのか本当にわかりません。Azure の構成 (「Windows Azure マネージャー」) に何か問題がありますか? ダッシュボードは次のようになります。
Update1 :
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1"
hostNameComparisonMode="StrongWildcard"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
openTimeout="00:10:00"
closeTimeout="00:10:00"
maxReceivedMessageSize="65536"
maxBufferSize="65536"
maxBufferPoolSize="524288"
transferMode="Buffered"
messageEncoding="Text"
textEncoding="utf-8"
bypassProxyOnLocal="false"
useDefaultWebProxy="true" >
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://pointage.azurewebsites.net/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1"
contract="PointageOnAzureOnlineService.IService1"
name="BasicHttpBinding_IService1" />
</client>
</system.serviceModel>
</configuration>
Update2 :
サービスを公開すると、接続文字列が設定されます