最初に、これはおそらく重複しているのでお詫びしますが、私はWCFに非常に慣れていないため、読んだものはすべて不完全または混乱しているようです。
私は基本的に、2つのエンドポイントにアクセスできるIISにWCFサービスを展開することを検討しており、一日中輪になって回っています:(
次の構造のサービスライブラリWCFdllがあります
App.config
TestSvc1.cs
ITestSvc1.cs
TestSvc2.cs
ITestSvc2.cs
これはVSWCFテストクライアントで正常に機能し、IISに展開しているので、WCFサービスアプリケーションを作成してdllを参照しました。このプロジェクトの構造は次のとおりです。
Service1.svc
Web.config
Service1.svc
これが含まれています
<%@ ServiceHost Language="C#" Debug="true"
Service="WCFServices.TestServices.ITestSvc1" CodeBehind="Service1.svc.cs" %>
そして私web.config
は次を持っています
<services>
<service name="WCFServices.TestServices.TestSvc2">
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration="LargeSizeMessages"
contract="WCFServices.TestServices.ITestSvc2">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/wcf2/TestServices/TestSvc2/" />
</baseAddresses>
</host>
</service>
<service name="WCFServices.TestServices.TestSvc1">
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration="LargeSizeMessages"
contract="WCFServices.TestServices.ITestSvc1"
listenUri="http://localhost:8080/wcf2/service1.svc">
<identity>
<dns value="" />
</identity>
</endpoint>
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration="LargeSizeMessages"
contract="WCFServices.TestServices.ITestSvc2"
listenUri="http://localhost:8080/wcf2/service1.svc">
<identity>
<dns value="" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/wcf2/TestServices/TestSvc1/" />
</baseAddresses>
</host>
</service>
</services>
どんな助けでも大歓迎です。ご覧のとおり、にエンドポイントを追加しようとしましたweb.config
が、これは機能しません。TestSvc2呼び出しがTestSvc1に見つからないというエラーが表示されます。これは、のエントリに関連していると思います。Service1.svc
これらのインターフェイスを継承するクラスの作成についても読みましたが、上記の内容に基づいて実装する方法が正確にはわかりません。変更する必要がありService1.svc
ますか?
public interface MultipleSvc : ITestSvc1, ITestSvc2
{
// What exactly do I put here? I have no idea, do I leave it blank? This didn't work for me
}
助けていただければ幸いです:)