0
WindowsサービスによってサーバーにホストされているWCFサービスを構築しました。すべてうまく動作し、私はすでにいくつかの方法をテストしています。今、私はこの1つのように私のクライアントからのHttpRequestを送信する必要があります。エラー400:httpwebrequestの無効なリクエスト
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(String.Format(@"http://192.168.0.170:9001/myServ/Start/{0}/{1}", "blabla", "blabla"));
req.Method = "GET";
問題は、私は私の要求が無効であることを述べ、クライアント側の例外を取得しておくことです。なぜ私は理解できません。
これは私のWCFサービスである:ここで
[OperationContract]
[WebInvoke(Method = "GET",
UriTemplate = "Start/{param1}/{param2}")]
string Mod(string param1, string param2);
は、私は問題を発見した私の設定
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
transferMode="Streamed"
sendTimeout="00:05:00"
name="WebHttpBinding_InotifyImp">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647"/>
<security mode="None" />
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="wcfImp.notifyImp" behaviorConfiguration="NewBehavior">
<endpoint address="" behaviorConfiguration="DefaultEndPointBehavior" bindingConfiguration="WebHttpBinding_InotifyImp" binding="webHttpBinding" contract="wcfImp.InotifyImp">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:9001/notifyImp"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<!-- To avoid disclosing metadata information,
set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="DefaultEndPointBehavior">
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
また、要求書式を渡す必要があります。この[WCF Parameterised Post Call]を試してください(https://stackoverflow.com/questions/25830289/how-to-pass-parameters-to-a-wcf-post-method-a-restful-services) –
私はすでに要求書式を指定せずに投稿してください。私はなぜこの単純なGETが意図したとおりに動作していないのだろうかと思います。私の問題は、私はデバッグでサービスに到達することすらできないということです。クライアント側でこの例外が発生し続ける –
私たちの設定を投稿できますか?ここにsimle GETリクエストのサンプルhttp://www.c-sharpcorner.com/UploadFile/0c1bb2/creating-wcf-rest-service/があります。 –