[]
6.1版本之前的活字格服务器基于Katana框架,从6.1版本开始,活字格服务器从Katana迁移到ASP.NET Core,因此您需要迁移服务端的Web API。
如果Web API没有使用ForguncyApi类的Context属性,则无需升级Web API即可以正常工作。
操作步骤
1. 检查项目属性,确认项目的框架为.NET 6.0。
2. 在解决方案资源管理器下,移除“GrapeCity.Forguncy.ServerApi.dll”和“Microsoft.Owin.dll”文件,并重新在活字格的安装目录下找到“GrapeCity.Forguncy.ServerApi.dll”文件,将其添加为该工程的引用。
如果安装活字格服务端时,安装目录为默认目录,则此文件的路径为“C:\Program Files\ForguncyServer\Website\bin”。
如果安装活字格服务端时,安装目录为自定义路径,则此文件的路径为“自定义路径\ForguncyServer\Website\bin”。
3. 双击解决方案“ClassLibrary1”,手动添加引用。
添加代码如下:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
如果要使用WriteAsync方法,请添加"using Microsoft.AspNetCore.Http;" 。
如果Web API中使用了以下的方法,请更新为新的写法。
方法 | 旧 | 新 |
---|---|---|
Write Response | Context.Response.Write(result) | Context.Response.WriteAsync(result).Wait() |
ReadRequestString | new StreamReader(base.Context.Request.Body).ReadToEnd() | new StreamReader(base.Context.Request.Body).ReadToEndAsync().Result |
Context.Request.User | this.Context.Request.User | this.Context.User |
异步支持。同步与异步两种方式的功能相同,异步方式的性能在较大的并发访问时表现更好。
同步 | 异步 |
---|---|
[Get] public void TestApi2() { this.Context.Response.WriteAsync().Wait() } | [Get] public async Task TestApi2() { await this.Context.Response.WriteAsync(); } |
4. 在解决方案资源管理器中,右击解决方案,在右键菜单中选择“重新生成”。
5. 重新上传生成的dll文件。在设计器中,选择“文件->设置->自定义Web Api”,单击“上传Web Api Assembly”,上传生成的dll文件。