我有一个WebApp,里面有一些WebApi 2,WebApp发布在一个运行IIS的服务器上。
当我向WebApp添加新的东西时,更新工作正常,所有的内容都正确地提供,但现在我刚刚对一个现有的API进行了更新,但该API只是不返回任何内容,因为该API仍然需要旧的参数。
我已经尝试删除缓存文件在 /Microsoft.NET/Framework
&amp。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中更新项目不会更新应用池设置,所以不会触发应用池回收。
请尝试手动回收应用池或在更新项目web部署时回收应用池。
https:/blogs.iis.netmsdeployoperations-on-application-pools-as-admin and-non-admin的操作。
如果你在添加功能时看到你的变化,那么这很可能是你的代码而不是IIS的问题。 我猜测是你的路由配置需要更新。