8

IIS 7.5 と 1 つの IP を備えた Windows 2008 Server を使用しています。ルートの下には、/web と /service の 2 つのアプリケーションがあります。/web は MVC4 アプリケーションで、/service は WCF 4.0 サービスです。

MVC からサービスを利用するときは、次のコードを使用します。

// Create the web request  
HttpWebRequest request = WebRequest.Create(TripServiceUrl + id) as HttpWebRequest;

// Get response  
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    // Get the response stream  
    StreamReader reader = new StreamReader(response.GetResponseStream());

    // Console application output  
    tripJson = reader.ReadToEnd();
} 

次の SocketException が発生します。

[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.243.6.43:80]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +273
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) +584

ただし、サーバーのブラウザーから 10.243.6.43:80 (内部アドレス) を確認でき、サービスを正常に呼び出すことができます。IP はパブリックにアクセスできません。

そのような自己参照呼び出しを機能させるには、どのような構成を行う必要がありますか?

4

1 に答える 1

1

おそらくループバックの問題(セキュリティの問題)です。http://support.microsoft.com/kb/896861を参照してください。

要約する:

レジストリエディタで、次のレジストリキーを見つけてクリックします。HKEY_LOCAL_MACHINE\ SYSTEM \ CurrentControlSet \ Control \ Lsa Lsaを右クリックし、[新規作成]をポイントして、[DWORD値]をクリックします。DisableLoopbackCheckと入力し、Enterキーを押します。DisableLoopbackCheckを右クリックし、[変更]をクリックします。[値のデータ]ボックスに1と入力し、[OK]をクリックします。

DisableStrictNameCheckingに関する手順に従わないでください。

また、これを行わない理由はたくさんあり(結局のところ、セキュリティチェックを無効にしている)、SharePointを正しく機能させる唯一の方法であると多くの人が言っています。いずれにせよ、これが問題であるかどうかを判断するのに役立ちます。

于 2012-04-25T19:57:37.567 に答える