[英]How to configure WCF endpoints for use in rdp client session so they can use a central service?
我正在研究一些WCF示例。 當前,存在帶有銷售記錄的訂單輸入應用程序。 為了使用戶獲得最新的交易,他們必須手動刷新寄存器以從數據庫中提取。
我將通過WCF和Publisher-Subscriber Framework實現一個事件模型,以便任何用戶訂購條目,並在該屏幕打開時通知應用程序的所有其他實例刷新其事務寄存器。
因此,到目前為止的示例都使用如下配置:
<configuration>
<system.serviceModel>
<services>
<service name="TrafficLightSubscriptionService">
<endpoint address="net.tcp://localhost:8001/TrafficLightSubscriptionService" binding="netTcpBinding" contract="ITrafficLightSubscription"/>
</service>
<service name="TrafficLightEventService">
<endpoint address="net.tcp://localhost:8002/TrafficLightEventService" binding="netTcpBinding" contract="ITrafficLightEvents"/>
</service>
</services>
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
這對於在具有IIS的單台計算機上進行學習等工作正常,但是我將需要在小型Windows Server 2003域(1個服務器,4-5個客戶端)上實現,其中“某些”客戶端通過rdp會話遠程連接,而其他則通過LAN 。
我希望將服務作為Windows服務而不是在IIS中托管。 因此,請向我指出如何為此方案配置綁定的方向。
穿越RDP邊界並非易事。 如果在創建遠程連接時仔細觀察,您可以選擇要共享哪些本地資源-音頻,打印機,文件系統...它們不共享IP,也不能從目標rdp主機內部獲取客戶端IP 。 但是,我不確定您是否真的需要-通過RDP會話連接的客戶端-他們的應用程序客戶端在本地計算機上,還是剛連接后在rdp桌面內打開客戶端? 如果客戶端位於他們的“家用” PC上,那么您就會有問題,否則,只要客戶端位於同一網絡上,它們的連接方式就不會有任何區別。
至於問題的另一部分-我強烈建議不要自我托管WCF,因為IIS具有可靠性,如果您自己托管它,可能很難模仿。
其次-如果您在每個客戶端上都需要IIS,則您的軟件體系結構可能有問題。 我猜想只有服務器需要IIS,並且服務器默認情況下具有靜態IP(如果不需要,則用域名計算機名稱來引用它們,而DNS會進行路由)。 客戶端在訂閱時應提供其當前IP。
希望這可以幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.