小编NKC*_*CSS的帖子

WCF webHttpBinding错误与方法参数."至多一个body参数可以在没有包装元素的情况下进行序列化"

"合同"操作''指定要序列化的多个请求体参数,而不包含任何包装元素.最多可以在没有包装元素的情况下序列化一个body参数.删除额外的body参数或将WebGetAttribute/WebInvokeAttribute上的BodyStyle属性设置为Wrapped.

我试图通过以下配置(通过WCF配置编辑器设置)公开带有JSON的C#4.0 WCF服务:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="iPhoneAPI.API">
        <endpoint address="" behaviorConfiguration="NewBehavior0" binding="webHttpBinding"
          bindingConfiguration="" contract="iPhoneAPI.IApi" />
      </service>
    </services>
    <protocolMapping>
      <add scheme="http" binding="webHttpBinding" bindingConfiguration="" />
    </protocolMapping>
    <behaviors>
      <endpointBehaviors>
        <behavior name="NewBehavior0">
          <webHttp defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>  
</configuration>
Run Code Online (Sandbox Code Playgroud)

当我访问/API.svc时,我得到了之前列出的异常消息.

如果我只指定以下(无参数)合同,则服务有效:

[OperationContract]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "test")]
GenericApiResult<IEnumerable<LiveFeedEntity>> test();
Run Code Online (Sandbox Code Playgroud)

如果我有需要非字符串参数的方法,我会得到之前列出的异常. …

c# rest wcf json

31
推荐指数
3
解决办法
5万
查看次数

我可以使用正则表达式来查找X的索引吗?

我有一个大字符串,想要找到第一个出现的X,X是"numberXnumber"... 3X3,或4X9 ......

我怎么能在C#中做到这一点?

c# regex

14
推荐指数
3
解决办法
3万
查看次数

将套接字从.NET传递到非托管C++代码

我目前有一个.NET程序启动与服务器的连接.有时我需要调用一个特殊的非托管C++代码,它使用与服务器的连接.

如何在非托管C++代码中传递和使用.NET的套接字连接?

提前致谢!

.net c# c++ sockets marshalling

6
推荐指数
1
解决办法
2098
查看次数

SQL Server中TOP的巨大性能下滑

考虑这个SQL性能差异,在第一个中,我选择所有26,000行,而在第二个中,我只想要前5个.

SELECT tw.*
FROM entity e
JOIN entity_tag et on et.entity_id = e.id
JOIN tag t on t.tag_id = et.tag_id
JOIN tagrelatedtweets trt on trt.FK_Tag_ID = t.tag_id
JOIN tweets tw on tw.PK_Tweet_ID = trt.FK_Tweet_ID
WHERE e.id = 765131
ORDER BY tw.[timestamp]
Run Code Online (Sandbox Code Playgroud)

VS

SELECT TOP (5) tw.*
FROM entity e
JOIN entity_tag et on et.entity_id = e.id
JOIN tag t on t.tag_id = et.tag_id
JOIN tagrelatedtweets trt on trt.FK_Tag_ID = t.tag_id
JOIN tweets tw on tw.PK_Tweet_ID = trt.FK_Tweet_ID
WHERE e.id = …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2005

5
推荐指数
1
解决办法
205
查看次数

标签 统计

c# ×3

.net ×1

c++ ×1

json ×1

marshalling ×1

regex ×1

rest ×1

sockets ×1

sql-server-2005 ×1

t-sql ×1

wcf ×1