zoukankan      html  css  js  c++  java
  • 创建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);
     
     
  • 相关阅读:
    selenium python学习笔记---添加等待时间
    转 虫师的selenium借助AutoIt识别上传(下载)详解
    python webdriver API学习笔记
    python-assert
    selenium2.0关于python的常用函数
    pcurl 学习 http文件下载及写入空设备文件实例
    pl/sql sql窗口允许输出和允许变量替换
    Git .gitignore文件忽略
    允许远程访问MySQL的设置
    Map 遍历取值及jstl的取值
  • 原文地址:https://www.cnblogs.com/om88mo/p/14871382.html
Copyright © 2011-2022 走看看