【发布时间】:2020-04-27 14:17:13
【问题描述】:
我有一个包含一些 WebApi 2 的 WebApp,该 WebApp 发布在运行 IIS 的服务器上。
当我向 WebApp 添加新内容时,更新工作正常并且所有内容都正确提供,但现在我刚刚对现有 API 进行了更新,并且该 API 只是不返回任何内容,因为 API 仍然需要旧参数..
我已经尝试删除以下网站的/Microsoft.NET/Framework和Framework64临时文件夹中的缓存文件,但没有任何效果..
那么如何强制 IIS 更新我的 WebApp?
我更改的 API 方法如下:
<HttpPost()>
<Route("rc")>
Public Function RepartiCassa(<FromBody()> ByVal where As ModelConfig.Config) As IEnumerable(Of Reparti)
Dim re = Request
Dim headers = re.Headers
Dim piva As String = ""
If headers.Contains("authToken") Then
Dim token As String = headers.GetValues("authToken").First()
Dim data = TokenManager.Principals(TokenManager.GetPrincipal(token))
If data Is Nothing Then Return New HttpResponseMessage(HttpStatusCode.Unauthorized)
piva = data.piva
End If
Dim modelConfig As ModelConfig = New ModelConfig
Dim rep As Reparti = New Reparti
Return rep.TotaliRepCassa(where.data.inizio, where.data.fine, modelConfig.QueryParametri(where.config, "TRC", False), piva)
End Function
虽然在旧版本中看起来如下
<HttpPost()>
<Route("rc")>
Public Function RepartiCassa(<FromBody()> ByVal where As ModelConfig.Config) As IEnumerable(Of RepCassa)
Dim re = Request
Dim headers = re.Headers
Dim piva As String = ""
If headers.Contains("authToken") Then
Dim token As String = headers.GetValues("authToken").First()
Dim data = TokenManager.Principals(TokenManager.GetPrincipal(token))
If data Is Nothing Then Return New HttpResponseMessage(HttpStatusCode.Unauthorized)
piva = data.piva
End If
Dim modelConfig As ModelConfig = New ModelConfig
Dim repCassa As RepCassa = New RepCassa
Return repCassa.TotaliRepCassa(where.data.inizio, where.data.fine, modelConfig.QueryParametri(where.config, "TRC", False), piva)
End Function
一切都变了,模型是 RepCassa 变成 Reparti
【问题讨论】:
-
您是否尝试过重启应用程序池?因为部署IIS不会刷新应用程序,还需要回收应用程序池来刷新复杂度。
-
@JokiesDing 我怎样才能重新启动应用程序池? (ps:实际上几个小时后它会自动更新,但无论如何手动刷新它会很酷)
-
blogs.iis.net/msdeploy/… 这是一篇关于如何部署和回收应用程序池的文档。
-
@JokiesDing 是的,实际上就是这样,甚至可以在 IIS 中右键单击应用程序池并按回收,做出答案以便我接受它
标签: .net iis asp.net-web-api2