标签: wcf-rest

WCF和JSON绑定

我正在尝试创建一个返回json的wcf服务.我的配置文件有一些问题,我也不知道如何测试它.

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="false" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="ContactLibraryJSON.ContactLibrary">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="JSONEndpointBehavior"
          contract="ContactLibraryJSON.IContactServiceJSON" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
          contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://192.168.1.31/ContactLibraryJSON" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="JSONEndpointBehavior">
          <webHttp/>
        </behavior>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to …
Run Code Online (Sandbox Code Playgroud)

wcf json wcf-binding wcf-rest

4
推荐指数
1
解决办法
1万
查看次数

WCF REST错误HTTP 307

我有一个REST WCF服务.当对此服务进行POST尝试以执行如下所述的操作时,我收到以下错误:

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "", RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
void Write();
Run Code Online (Sandbox Code Playgroud)

错误: HTTP 307没有操作侦听https://xx.xxx.xx.xxx/EnrollmentServer/Discovery.svc,但是有一个操作正在侦听https://xx.xxx.xx.xxx/EnrollmentServer/Discovery .svc /,所以你被重定向到那里.

任何指针将不胜感激.

rest wcf wcf-rest c#-4.0

4
推荐指数
1
解决办法
2467
查看次数

使用来自 IParameterInspector AfterCall 可以处理的 WCF Rest 服务的消息返回 HttpStatus 代码

那么,我在使用自定义属性装饰的几个服务中获得了许多方法。

该属性用途ApplyDispatchBehaviorIOperationBehavior附加到方法和BeforeCallAfterCall从方法IParameterInspector之前和服务方法被调用后做一些处理。

一切都很好,很好……当服务方法需要返回 http 状态和消息时,问题就来了。我能找到的唯一方法是让方法WebFaultException<T>传递我们的消息和适当的 http 状态。

问题AfterCall在于从未调用附加属性。

它的长短是:

  • 有没有办法在不抛出异常的情况下返回消息并设置 http 状态?
  • 如果我必须抛出 aWebFaultException<T>有没有办法仍然可以使用返回的消息调用我的属性?

.net c# wcf .net-4.0 wcf-rest

3
推荐指数
1
解决办法
7026
查看次数

如何将裸结果返回给WCF客户端

我有类似以下代码:

<OperationContract()>
<Description("")>
<WebGet(Bodystyle:=WebMessageBodyStyle.Bare, UriTemplate:="TestConnection")>
Function TestConnection() As String


Public Function TestConnection() As String Implements ITestSvc.TestConnection
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain"
    Return "Connection Success"
End Function
Run Code Online (Sandbox Code Playgroud)

但它返回的是 <string xmlns='...'>Connection Success</string>

如何在没有XML包装器的情况下返回"连接成功".我知道我们可以用MessageEncoder做些什么.但是,我希望在操作级别提供它(某些操作需要XML/JSON包装器,而某些操作则不需要).

谁可以帮我这个事?

wcf wcf-rest

3
推荐指数
1
解决办法
9184
查看次数

公开WCF 4.0 Rest模板服务的元数据

可能遗漏了一些非常基本的东西.我创建了一个WCF 4.0 Rest服务.当我从浏览器访问网址时,它没有问题,我正在回复我想要的东西.

但是现在我想从客户端mvc应用程序中使用该服务(它也将被其他非.net平台使用,这就是为什么它首先是一个休息服务).

问题是如何获得服务引用,以便我可以开始在我的c#代码中使用它?使用新的最小WCF .net 4配置方法并且没有服务契约的接口,我不知道如何指定mex端点.最终,我不想在生产过程中使用mex端点,只是在开发过程中.我希望能够指定我的所有服务(在一个应用程序中大约10个)都有一个端点和一个小的配置,vs2010 .config转换只是在我发布时撕掉了.

wcf wcf-client wcf-rest

3
推荐指数
1
解决办法
3634
查看次数

使用WCF WebApi的异步REST服务

我想知道开发人员对WCF WebApi服务的看法是什么.

在N层应用程序中,我们可以拥有多层服务.我们可以使用服务来消耗外部服务的数据.在那种情况下,使用WCF 4.0创建异步休息服务是值得的.

public interface IService
{
   [OperationContractAttribute(AsyncPattern = true)]
   IAsyncResult BeginGetStock(string code, AsyncCallback callback, object asyncState);
    //Note: There is no OperationContractAttribute for the end method.
    string EndGetStock(IAsyncResult result); 
}
Run Code Online (Sandbox Code Playgroud)

但随着WCF WebApi的发布,这种方法仍然需要吗?创建异步服务?

如何在IIS/WAS /自托管中托管它们

期待建议和评论.

wcf wcf-hosting wcf-rest wcf-web-api

3
推荐指数
1
解决办法
2042
查看次数

使用WCF RESTFul服务完整工作示例上载映像

作为一个非常大的应用程序的一部分,我需要提供一个上传图像的REST服务.由于整个应用程序都是.NET,我一直在尝试找到一个WCF RESTFul服务的工作示例,它可以做到但不能(定义整个配置).网上有一些例子但我不能(由于我在WCF中缺乏知识)使它们都不起作用.(我不断抛出异常).

我很乐意与工作人员联系起来.

wcf file-upload image-uploading wcf-rest

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

WCF REST Svc GET返回HTML

我在WCF中组装了一个简单的REST服务:

....
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "{uid}/{pwd}/{exrcsPrgmId}/{exchEnum}")]
string GetLiftDataExchange(string uid, string pwd, string exrcsPrgmId, string exchEnum);
....
Run Code Online (Sandbox Code Playgroud)

在调用它时,我并没有完全恢复XML.我得到了HTXML(我自己编写的缩写词)

而不是我期望的:

<Exercise>
  <AccountName>Joe Muscle</AccountName>
  <UserID>8008008</UserID>
Run Code Online (Sandbox Code Playgroud)

我用HTML编码获取XML:

&lt;Exercise&gt;&#xD;
  &lt;AccountName&gt;John Bonner&lt;/AccountName&gt;&#xD;
  &lt;UserID&gt;8008008&lt;/UserID&gt;&#xD;
Run Code Online (Sandbox Code Playgroud)

换句话说,我不需要在浏览器中看到这些数据,而是在应用程序中访问和解析它,所以直接使用XML就可以了.

我在服务装饰上做错了什么来返回这个编码的xml?

wcf wcf-rest

3
推荐指数
1
解决办法
2660
查看次数

如何通过Id为Odata创建查询表达式

我创建了一个OData服务,现在我正在尝试在客户端使用此服务.我想在c#查询表达式中为下面的url创建一个表达式 -

http://odata.org/Product-Service/Product(150)

上面的url在浏览器中工作正常,但我想在C#中为上面的url创建查询表达式.任何帮助都会非常明显.

c# wcf-rest odata wcf-web-api

3
推荐指数
1
解决办法
6605
查看次数

WCF REST全服务中的异常处理

我正在使用WCF服务4.5 F/W开发REST Full API.请建议如何向客户端发送异常或任何业务验证消息.我正在寻找非常通用的解决方案,请提出最佳方法.我尝试了下面的一些方法,

  1. 在向客户端发送响应之前设置OutgoingWebResponseContext.

  2. 定义的故障合同只能正常工作添加服务引用(代理类)不能在REST FULL环境中工作.

  3. 在catch块中添加WebFaultException类.

  4. WCF休息入门套件 - 我收到了一些关于此的文章和帖子,但他们的codeplex官方建议不再提供此信息.链接.所以,我不想这样做.

这些没有按预期工作..我的示例代码片段:接口:

    [OperationContract]
    [FaultContract(typeof(MyExceptionContainer))]
    [WebInvoke(Method = "GET", UriTemplate = "/Multiply/{num1}/{num2}", BodyStyle = WebMessageBodyStyle.Wrapped,RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
    string Multiply(string num1, string num2);
Run Code Online (Sandbox Code Playgroud)

执行:

         public string Multiply(string num1, string num2)
    {
        if (num1 == "0" || num2 == "0")
        {
            try
            {
                MyExceptionContainer exceptionDetails = new MyExceptionContainer();
                exceptionDetails.Messsage = "Business Rule violatuion";
                exceptionDetails.Description = "The numbers should be non zero to perform this operation";
                //OutgoingWebResponseContext outgoingWebResponseContext = WebOperationContext.Current.OutgoingResponse; …
Run Code Online (Sandbox Code Playgroud)

rest wcf web-services exception-handling wcf-rest

3
推荐指数
1
解决办法
5594
查看次数