2015-02-17 3 views
1

Я читал (видимо, не очень хорошо), что размещал небольшую службу WCF внутри приложения WPF. Это набор инструментов, в котором есть приложение главного лотка, которое действует как точка распространения информации между ними.Приложение WPF, использующее нарушение доступа к WCF

Когда я пытаюсь создать новый узел службы я получаю нарушение прав доступа, упрощен код следующим образом:

[ServiceContract] 
public interface IMyService 
{ 
    [WebInvoke(Method = "GET", 
     BodyStyle = WebMessageBodyStyle.WrappedRequest, 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "/SampleMethod")] 
    [OperationContract] 
    void addSearch(object data); 
} 

MyService.cs

public class MyService: IMyService 
{ 
    // Instantiate the API wrapper class. 
    private MainWindow.api myApi = new MainWindow.api(); 

    public void addSearch(object data) 
    { 
     myApi.addSearch(data); 
    } 

} 

Тогда в OnLoad случае моей главной WPF Ошибка окна: * В System.ServiceModel.dll произошла первая случайная ошибка типа «System.ArgumentException»

Программа «[13672] MyApplic ation.vshost.exe»завершился с кодом -1073741819 (0xc0000005) 'Нарушение прав доступа'. *

 Uri httpUrl = new Uri("http://localhost:8090/MyService/Test"); 
     //Create ServiceHost 
     // **ERROR HERE 
     ServiceHost host = new ServiceHost(typeof(MyService), httpUrl); 
     //Add a service endpoint 
     host.AddServiceEndpoint(typeof(IMyService), new WSHttpBinding(), ""); 
     //Start the Service 
     host.Open(); 

App.manifest

<security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    <applicationRequestMinimum> 
    <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" /> 
    <defaultAssemblyRequest permissionSetReference="Custom" /> 
    </applicationRequestMinimum> 
</security> 

Я читал учебники по этому вопросу, так что это вероятно, я неправильно поняли, поэтому любые указатели очень ценятся.

ответ

0

Ошибка «Нарушение доступа» на самом деле происходит для любой синтаксической ошибки в приложении WPF, на котором размещается служба WCF.

System.ArgumentException является важным, что, очевидно, указывает на то, что некоторые из аргументов были неправильными. Я просто тестирую рабочий пример и отправляю обратно код, который работает!

Смежные вопросы