Mam odręczny WCF pełnomocnictwa w jego własnym zespole, jest bardzo prosta:Jak używać niestandardowego proxy WCF w skrypcie Powershell z plikiem konfiguracyjnym?
public class MyServiceClient : ClientBase<IMyService>, IMyService
{
public MyServiceClient()
{
}
public MyServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
}
wczytuję to do skryptu PowerShell:
Add-Type -Path "$LocalPath\MyService.Client.dll"
Add-Type -Path "$LocalPath\MyService.Contracts.dll"
jestem następnie próbuje ustawić aplikację config (zgodnie other posts na SO), tak, że klient może być tworzony z Punkt końcowy zdefiniowano w konfiguracji, a nie w scenariuszu, czyli:
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", "$LocalPath\MyService.Client.dll.config")
I sprawdziłem AppDomain i plik konfiguracyjny jest ustawiony jako jego właściwość ConfigurationFile
.
Kiedy tworzę instancję klienta:
$endpointName = "MyServiceHttpEndpoint" # defined in the app.config file
$myclient = New-Object MyService.Client.MyServiceClient($endpointName)
To przewraca mówiąc:
Exception calling ".ctor" with "1" argument(s): "Could not find endpoint element with name 'MyServiceHttpEndpoint' and contract 'MyService.Contracts.IMyService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this name could be found in the client element."
Jakieś pomysły? Nie chcę ręcznie tworzyć punktu końcowego w pliku skryptu - należy go odczytać z config.
Błąd mówi: wyglądał w pliku konfiguracyjnym i nie mógł znaleźć punktu końcowego o nazwie "MyServiceHttpEndpoint". Będziesz musiał opublikować rzeczywisty plik konfiguracyjny, jeśli potrzebujesz znaczącej pomocy. – ErnieL
Mówi także "Może to być spowodowane tym, że nie znaleziono pliku konfiguracyjnego dla twojej aplikacji" - na czym polega problem. Plik konfiguracyjny jest w porządku, działa bez Powershell bez żadnych problemów. – MalcomTucker
Sprawdziłem AppDomain i plik konfiguracyjny jest obecny i poprawny w 'AppDomain.Właściwość ConfigurationFile', więc można znaleźć, po prostu nie mogę powiązać pliku konfiguracyjnego z proxy klienta zużywającego. Dodano konfigurację ... – MalcomTucker