创建WebService服务--.NET Core与SoapCore 及遇到的问题(二)

这一篇,我们看一下.net core如何创建WebService,首先创建一个.net core的web应用。

项目创建好以后,需要通过NuGet加入SoapCore

新建一个类,用于返回和接收参数

[DataContract]

public class StudentModel

{

  /// <summary> /// 学号 ///</summary>

  [DataMember]

  public string Sno { get; set; }

  /// <summary> /// 姓名 /// </summary>

  [DataMember]

  public string Name { get; set; }

  /// <summary> /// 班级 /// </summary>

  [DataMember]

  public string Grade { get; set; }

  /// <summary> /// 生日 /// </summary>

  [DataMember]

  public DateTime Birthday { get; set; }

}

添加接口约束IContract

[ServiceContract]

public interface IContract

{

  /// <summary> /// 加法接口/// </summary>

  [OperationContract]

  int Add(int a,int b);

}

添加服务实现类StudentService,来实现我们的约定服务接口。

public class StudentService : IContract

{

  public int Add(int a,int b)

  {

     return a+b;

  }

}

在netcore中添加注入,修改 Startup.cs类中的ConfigureServices方法

services.TryAddSingleton<IContract, StudentService>();

添加服务发布接口地址,修改Startup.cs类中的Configure方法,在最后修改UseEndpoints

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

{

   if (env.IsDevelopment())

  {

    app.UseDeveloperExceptionPage();

  }

  app.UseRouting();

  app.UseSoapEndpoint<IContract>("/StudentService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);

}

之后运行就好,因为.net core 和.net framework版本不同,所以在.net core的显示页面中会与.net framework 会有不同。

 

问题:当接口接收的是Xml数据并且数量过大时,会报错。

报错信息:
              FaultException:The maxinum string content length quota(8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader .Line 1,position135    
         解决:在.net Core项目中startup.cs文件的Configure方法中
         var binging = new BasicHttpBinding();
         binging.ReaderQuotas.MaxStringContentLength = int.MaxValue;
    app.UseSoapEndpoint<IContract>("/StudentService.asmx", binging, SoapSerializer.XmlSerializer);
 
 
posted @ 2021-06-10 15:56  CodeMagic  阅读(1795)  评论(0编辑  收藏  举报