0

Windows Phone アプリケーション用の WCF を開発しています。

データベースは MySQL であるため、ADO.net エンティティ フレームワークを使用してデータにアクセスしました。ローカル環境では問題なく動作します。

ただし、パッケージ インスタンスを使用してそれらを azure にデプロイすると、エンティティ フレームワークを使用するメソッドで例外が発生します。データベースデータを必要としない他のメソッドは、次のような値を返します: getHello()

Visual Studio 用の最新の mysql コネクタを使用しています。

テストには、WCFTestClient.exe を使用します。メソッドを呼び出すと、次のように返されます。

The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.

Server stack trace: 
   at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at IService1.getUUser(Int32 userUid)
   at Service1Client.getUUser(Int32 userUid)

サービスはhttp://unifiqsvc.cloudapp.net/Service.svcです。

私が修正しようとしている方法は次のとおりです。

getUUser() - 1 から 3 までの整数を入力すると、アカウントの詳細が返されます

updateLoc() - uid、lat、longit に任意の整数を入力します (レコードの挿入)

私を助けるためにサービスにアクセスしてください。

4

1 に答える 1

0

解決しました。

MySQL.Data.dll、MySQL.Web.dll、MySQL.Data.Entity.dll、および System.Data.Entity.dll System.Data.Entity.Design System.Data.dll がすべてローカルにコピーされていることを確認しました (コピーローカルは true に設定されています)

以下を web.config ファイルに追加します。

  <system.data>
      <DbProviderFactories>
        <clear />
        <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
        description=".Net Framework Data Provider for MySQL"
        type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
        Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      </DbProviderFactories>
    </system.data>
于 2013-07-31T03:02:30.180 に答える