0

ローカル マシンで WCF サービスを実行しています

すべてのテーマが正常に実行されます

質問は

WCFローカル マシンのブラウザでこのサービスを呼び出すことができる場合、他のマシンでは利用できない理由

私が試したこと:

  1. 私のサービスアドレスはlocalhostport他のマシンで、ローカルホストをWCFサービスが実行されているマシンのIPに置き換えましたが、機能しませんでした
  2. 私の場合、以下に示すようにをマシンのIPにApp.config変更しましたが、どちらも機能しませんでしたbaseaddresslocalhost
  3. 私はWebアプリケーションを作成し、を使用getJsonしてサービスを呼び出しましたが、ローカルマシンのブラウザで動作し、他のマシンでは動作せず、ページ全体をロードしてエラーが発生しましたgetJson

ここで何が欠けていますか??? わからない

IService1.cs

[OperationContract]
[WebGet(UriTemplate = "GetName/{name}",
        ResponseFormat = WebMessageFormat.Json)]
List<Eval> GetName(string name);

App.config

<system.web>
    <compilation debug="true"  targetFramework="4.0" />
</system.web>
 <system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<system.serviceModel>
    <bindings>
        <webHttpBinding>
            <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true"></binding>
        </webHttpBinding>
    </bindings>
    <services>
        <service name="WcfServiceLibrary1.Service1">
            <host>
                <baseAddresses>
                    <add baseAddress = "http://192.168.1.5:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />
                </baseAddresses>
            </host>
            <endpoint address="" binding="webHttpBinding" bindingConfiguration="webHttpBindingWithJsonP" contract="WcfServiceLibrary1.IService1" behaviorConfiguration="web">
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled="True"/>
                <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
        </serviceBehaviors>
        <endpointBehaviors>
            <behavior name="web">
                <webHttp/>
            </behavior>
        </endpointBehaviors>
    </behaviors>
</system.serviceModel>

WCF テスト クライアント

ここに画像の説明を入力

ブラウザ ここに画像の説明を入力

4

1 に答える 1

2

ファイアウォールがサービス呼び出しを停止している可能性があります。WCF がホストされているマシンのポート 8733 でインバウンド接続を開きます。Windows の場合、[セキュリティが強化された Windows ファイアウォール] ダイアログ ボックスを開き、左側のペインで [受信の規則] をクリックし、右側のペインで [新しい規則] をクリックして、[ポート] オプションを選択します。

于 2013-11-09T01:07:45.867 に答える