0

我有一个 asmx WebService 可以完美运行,但是当我在浏览器中浏览它时会返回一个空白页面。

当我浏览到该search.asmx文件时,我没有使用允许您调用服务的测试表单获得服务的通常 html 格式描述。我得到的只是一个完全空白的页面。(查看源代码不返回任何内容)。

这发生在 localhost (casini) 和服务器 (IIS 7.5) 上。

有没有办法可以打开它?

我的 web.config 看起来像这样:

  ...
  <system.web>
    <httpRuntime requestValidationMode="2.0" enableKernelOutputCache="false"/>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
    ...

我的服务看起来像这样:

...
[WebService(Namespace = "http://mydomain.edu/something")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.Web.Script.Services.ScriptService]
public class SearchService : System.Web.Services.WebService {

    public SearchService() {

    }

    [WebMethod(EnableSession = true)]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public SearchResponse Search(SearchFilter filter)
    {
...

更新:

当我导航到 wsdl 时search.asmx?wsdl,出现错误:

System.InvalidOperationException:无法反映方法搜索。---> System.InvalidOperationException:出现反映“SearchResult”的错误。---> System.InvalidOperationException:反映类型“SearchResponse”时出现错误。---> System.InvalidOperationException:反映属性“属性”时出现错误。---> System.InvalidOperationException:反映类型“USpaceDataAttributes”时出现错误。---> System.NotSupportedException: 无法序列化 System.Collections.Generic.Dictionary 类型的成员 USpaceDataAttributes.attributes`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[SimpleTypeData , Entities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]],因为它实现了 IDictionary。

我很确定这就是为什么我得到一个空白页。

4

1 回答 1

2

尝试

<add name="Documentation"/>
于 2012-12-10T15:15:01.560 回答