小编Sey*_*our的帖子

SOAP错误或结果对象?

我和同事正在讨论这个问题,我们无法达成协议,所以我想得到你的想法.我对此有自己的看法,但我不会为你破坏它.

我应该何时返回SOAP错误,何时应返回具有错误信息的结果对象?假设这是一个可以被各种系统(.NET,Java,等等)使用的通用Web服务.结果对象将具有isError标志,errorType(类似于特定的异常类型)和消息.

有些要考虑的要点:

  1. 数据验证错误是错误吗?
  2. 是否存在故障组合(对于非常特殊情况)和结果对象(对于"预期"错误)?
  3. 您将如何分组SOAP错误(关键[空引用]与验证[邮政编码不正确])?
  4. 快速失败与必须记住检查错误
  5. 最佳实践,模式,标准等

文章链接有效.即使听起来我想要你的意见,请坚持事实(因为y和z,x更好)

web-services exception-handling soapfault

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

如何使用"路径"查询XDocument?

我想查询XDocument给定路径的对象,(例如"/ path/to/element/I/want")但我不知道如何继续.

c# xml linq xpath linq-to-xml

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

在C#/ Powershell中 - 是否可以从应用程序池中更改IIS空闲超时?

我想禁用应用程序池的空闲超时(将其设置为零),我想在设置时执行此操作,是否可以从C#或PowerShell执行此操作?

c# iis powershell

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

WCF服务合同可以有一个可以为空的输入参数吗?

我的合同定义如下:

[OperationContract]
[WebGet(UriTemplate = "/GetX?myStr={myStr}&myX={myX}", BodyStyle = WebMessageBodyStyle.Wrapped)]
string GetX(string myStr, int? myX);
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:[InvalidOperationException:合同'IMyGet'中的'GetX'操作有一个名为'myX'的类型为'System.Nullable 1[System.Int32]', but type 'System.Nullable1 [System.Int32]' 的查询变量'不能被'QueryStringConverter'转换.UriTemplate查询值的变量必须具有可由"QueryStringConverter"转换的类型.

找不到任何有关此错误的信息,除了以下链接:http: //blog.rolpdog.com/2007/07/webget-and-webinvoke-rock.html有点旧,而不是解决方案.

任何想法除了摆脱可以为空的参数做什么?

谢谢.

c# rest wcf nullable

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

从C#中的基类访问派生类的属性

在C#中,当泛型列表仅包含基类时,访问派生类的属性的最佳方法是什么.

public class ClassA : BaseClass
{
   public object PropertyA { get; set; }
}

public class ClassB: BaseClass
{
    public object PropertyB { get; set; }
}

public class BaseClass
{
}

public void Main
{
    List<BaseClass> MyList = new List<BaseClass>();
    ClassA a = new ClassA();
    ClassB b = new ClassB();

    MyList.Add(a);
    MyList.Add(b);

    for(int i = 0; i < MyList.Count; i++)
    {
        //I would like to access PropertyA abd PropertyB from the derived classes        
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics collections

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

如何在c#中更改表单的背景图像?

我可以使用菜单条或上下文菜单来允许用户,以便他可以在c#中更改窗口的背景图像而不是背景颜色吗?

c# background-image winforms

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

WCF SOAP服务不能将JSON作为输出返回吗?

历史


我基本上是一个前端(android)开发人员,从来没有必要创建一个Web服务而是我在消费端.现在这个WCF业务势不可挡,我认为学习曲线非常复杂.

任务


我需要创建一个简单的SOAP服务,hello world暂时需要输入XML,但是返回JSON.

我不知道为什么我们在互联网上没有类似的问题,有点让我想知道它是否根本不可能?

这就是我到目前为止所拥有的.

目前的进展


我的合同

[ServiceContract]
    public interface IHelloWorldService
    {
        [OperationContract]
        String GetMessage(String name);
    }
Run Code Online (Sandbox Code Playgroud)

我的合同Impl

public string GetMessage(string name)
        {
            return "Hello World from " + name + "!";
        }
Run Code Online (Sandbox Code Playgroud)

我的服务配置(在Web.Config中.我已经在asp.net网站上托管了这项服务)

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyServiceTypeBehaviors">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="WebBehavior">
          <webHttp defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <services>
      <service name="MyWcfServices.HelloWorldService"          behaviorConfiguration="MyServiceTypeBehaviors">
        <endpoint address="" binding="wsHttpBinding"       behaviorConfiguration="WebBehavior"     contract="MyWcfServices.IHelloWorldService"/>
        <endpoint contract="IMetadataExchange"            binding="mexHttpBinding" address="mex"/>
      </service>
    </services>
  </system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

问题


  1. SOAP是否与XML密切相关?这样你就不能发送JSON作为输出?
  2. 将JSON作为输出发送是否真的需要转到REST范例?
  3. 我是否每次都获得XML,因为我使用带有HTTP头的WCFStorm fiddles并默认发送XML mime类型? …

c# rest wcf soap web-services

8
推荐指数
1
解决办法
7557
查看次数

使用CustomBinding的WCF服务配置HTTPS

我需要在WCF服务上进行自定义绑定,以允许我将原始内容传递给WCFRest服务.效果很好,但我不能让它接受传输级别的安全性.我想在其他地方使用https和basicauthentication.端点看起来像这样:

   <endpoint address="" behaviorConfiguration="web" contract="SmsService.ISmsReceive" binding="customBinding" bindingConfiguration="RawReceiveCapable"></endpoint>
Run Code Online (Sandbox Code Playgroud)

customBinding看起来像这样:

  <customBinding>
    <binding name="RawReceiveCapable">
      <security mode="Transport">
        <transport clientCredentialType="Basic"/>
      </security>
      <webMessageEncoding webContentTypeMapperType="SmsService.RawContentTypeMapper, SmsService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <httpTransport manualAddressing="true" maxReceivedMessageSize="524288000" transferMode="Streamed" />
    </binding>
  </customBinding>
Run Code Online (Sandbox Code Playgroud)

但是系统抱怨安全节点中不允许使用mode属性.没有安全节点,一切都很好,但它不是https.

谢谢

射线

https wcf wcf-binding transport basic-authentication

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

如何在.NET中创建通用SQL参数?

根据Microsoft有关配置参数的文档,".NET Framework数据提供程序处理命名并以不同方式指定参数和参数占位符".

  • System.Data.SqlClient使用格式的命名参数@parametername
  • System.Data.OleDbSystem.Data.Odbc使用由问号(?)指示的位置参数标记
  • System.Data.OracleClient使用格式:parmname(或parmname)的命名参数

我正在编写方法来返回将用于参数化语句的SQL.如果我使用标准SQL,这些语句应该可以移植到各种各样的数据库中.如何创建通常有效的参数而不会从数据提供程序泄漏到SQL组件?

.net sql ado.net oracleclient

7
推荐指数
1
解决办法
1062
查看次数

在为WCF服务生成类型时,.NET加载了查找另一个程序集版本

尝试在Visual Studio 2013中向ASP.NET Web应用程序添加服务引用时出现此错误.我在项目中引用了Microsoft.Owin.Security版本2.1.0.0.但是我很沮丧他为什么要寻找2.0.1.0版本?

无法导入wsdl:portType详细信息:运行WSDL导入扩展时抛出异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter错误:无法加载文件或程序集'Microsoft.Owin.Security,Version = 2.0.1.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.

.net c# asp.net wcf wsdl

7
推荐指数
1
解决办法
592
查看次数