У меня есть служба WCF, размещенная в службе Windows. То, что я пытаюсь сделать, - вызвать службу Windows (WS), которая находится на клиентском ПК и WS, чтобы вызвать клиентскую DLL на том же клиентском компьютере. Я установил WS на каждом клиентском ПК и на сервере. Когда вы переходите на страницу ASP.NET на сервере, и я вызываю этот метод, он отлично работает, но клиентские ПК вместо вызова своих DLL из своего локального WS, они вызывают WS, который вызывается на сервере, - который не является желаемое поведение. Эта среда будет установлена в локальной сети.WCF Вызов локальной службы Windows, а не сервер
Пример метода, который у меня есть, - это получить имя ПК, которое неправильно взамен получает имя сервера.
Это мой app.config файл:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<!-- This section is optional with the new configuration model
introduced in .NET Framework 4. -->
<service name="Service.CalculatorService" behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service -->
<endpoint address=""
binding="wsHttpBinding"
contract="Service.ICalculator" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Мой класс обслуживания:
Public Interface ICalculator
<OperationContract()> _
Function GetPCname() As String
Sub OpenPort()
<OperationContract()> _
End Interface
Public Class CalculatorService
Implements ICalculator
<DllImport("C:\App_32bit\test.dll", CharSet:=CharSet.Ansi)> _
Private Shared Function DrvOpen(ByVal cha As String, ByRef ope As T_open, ByRef out As T_open_out) As Short
End Function
Public Function GetPCname() As String Implements ICalculator.GetPCname
Return Environment.MachineName
End Function
Public Sub OpenPort() Implements ICalculator.OpenPort
'some code.
End Function
End Class
Любые идеи, как управлять, чтобы назвать мою МЕСТНОГО службу вместо службы Windows сервера?