[]
        
(Showing Draft Content)

迁移服务端Web API

6.1版本之前的活字格服务器基于Katana框架,从6.1版本开始,活字格服务器从Katana迁移到ASP.NET Core,因此您需要迁移服务端的Web API。

如果Web API没有使用ForguncyApi类的Context属性,则无需升级Web API即可以正常工作。

升级服务端Web API

操作步骤

1. 检查项目属性,确认项目的框架为.NET 6.0。

image


2. 在解决方案资源管理器下,移除“GrapeCity.Forguncy.ServerApi.dll”和“Microsoft.Owin.dll”文件,并重新在活字格的安装目录下找到“GrapeCity.Forguncy.ServerApi.dll”文件,将其添加为该工程的引用。

  • 如果安装活字格服务端时,安装目录为默认目录,则此文件的路径为“C:\Program Files\ForguncyServer\Website\bin”。

  • 如果安装活字格服务端时,安装目录为自定义路径,则此文件的路径为“自定义路径\ForguncyServer\Website\bin”。



3. 双击解决方案“ClassLibrary1”,手动添加引用。

image

添加代码如下:

    <ItemGroup>
		<FrameworkReference Include="Microsoft.AspNetCore.App" />
	</ItemGroup>

image


如果要使用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文件。