簡體   English   中英

使用ServiceStack的Soap12ServiceClient將請求對象發送到使用ServiceStack.Factory配置的服務時出現404錯誤

[英]Getting a 404 error when using ServiceStack's Soap12ServiceClient to send a request object to a service configured with ServiceStack.Factory

這是我從通用處理程序調用的相關客戶端代碼:

private static readonly IServiceClient Client = new Soap12ServiceClient("http://localhost/MyService/Send");

_serviceRequest = new ServiceRequest
                                 {
                                     String1 = "string1",
                                     String2 = "string2",
                                     String3 = "string3"
                                 };
Client.Send<ServiceResponse>(_rawMessage);

在服務端,我在web.config中有以下內容:

<system.webServer>
  <handlers>
    <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true"/>
  </handlers>
</system.webServer>

並關注我的Global.asax.cs:

public class MyServiceAppHost : AppHostBase
    {
        public MyServiceAppHost() : base("My Service", typeof(MyService).Assembly) { }
        public override void Configure(Container container)
        {
            Routes.Add<ServiceRequest>("/Send");
        }
    }

    protected void Application_Start(object sender, EventArgs e)
    {
        new MyServiceAppHost().Init();
    }

最后,MyService類:

public class MyService : IService<ServiceRequest>
{
    public object Execute(ServiceRequest request)
    {
        return new ServiceResponse
        {
            Response = true
        };
    }

這是我的POCO課程:

[DataContract]
public class ServiceRequest
{
    [DataMember(Order = 1)]
    public string String1 { get; set; }

    [DataMember(Order = 2)]
    public string String2 { get; set; }

    [DataMember(Order = 3)]
    public string String3 { get; set; }
}
[DataContract]
public class ServiceResponse
{
    [DataMember(Order = 1)]
    public bool Response { get; set; }
}

我已經嘗試將我的客戶端和服務放在同一個IIS服務器(不同的應用程序池/網站)上,也放在不同的服務器上。

如果我通過我的瀏覽器http://localhost/MyService/Send轉到url,我會在瀏覽器上得到正確的響應(true),表明服務已啟動。 但是當我從我的客戶端使用Soap12ServiceClient時,我得到“遠程服務器返回錯誤:(404)Not Found。”

SOAP無法使用自定義路由,它只支持HTTP POSTing SOAP消息到同一個端點。 因此,您應該只將其配置為使用所有服務的基本URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM