創建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);
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM