0

WCF テストクライアントをチェックインすると正常に動作する WCF サービスがありますが、サービスをリモートサーバー (大学のサーバー) にデプロイした後は動作しません。wp8アプリで実行しましたが、エラーが発生しなかったため、wcfテストクライアントで実行したところ、DBに接続できないことがわかりました。理由はわかりません!

誰もがおそらくこれだと言ったので、接続文字列についてWeb全体を検索しますが、すべてが問題ないようです:(

これは私の接続文字列です:

<connectionStrings>
<add name="dbPulpoConnectionString" providerName="System.Data.SqlClient" connectionString="Server=(LocalDb)\v11.0;Initial Catalog=PulpoDatabase;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\PulpoDatabase.mdf"/>

私もそれを変更しました:

 <connectionStrings>
<add name="dbPulpoConnectionString" providerName="System.Data.SqlClient" connectionString="Server=.\SQLEXPRESS;Initial Catalog=PulpoDatabase;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\PulpoDatabase.mdf"/>

それでもうまくいきませんでした><

編集:私のプロプリタイズでは、.NET FRAMWORK 4.5と書かれています

助けてくださいもうどうすればいいのかわからない><

編集:私は必要なすべての前提条件をリモートサーバー上に持っています。リモートサーバーには、database.mdfファイルがそこにあるApp_Dataフォルダーと、web.configとbinとwcf.svcサーバーがあります

編集:私のエラー:

Object reference not set to an instance of an object. 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 IPulpoService.ShowStatistics(UserVO client) at PulpoServiceClient.ShowStatistics(UserVO client)
4

1 に答える 1

0

統合セキュリティを使用してデータベースにアクセスしている場合は、偽装を使用して、サービスがデータベースにアクセスするときにクライアントの ID を想定する必要がある場合があります。そうしないと、データベースへのアクセス許可を持たない可能性のあるローカル システム アカウント (またはそのいくつかの種類) として実行されます。これをテストするには、接続文字列を変更して SQL Server セキュリティを使用し、接続文字列にユーザー名とパスワードを入力して、それが機能するかどうかを確認してください。明らかに、これは単なるテストです。実際には、「ライブ」環境のようにパスワードをファイルに保存しないでください。

于 2013-05-20T19:52:38.333 に答える