如何强制更新 API 中的 IIS 更改?
How to force update IIS changes in an API?
我有一个 WebApp,里面有一些 WebApi 2,WebApp 在服务器 运行 IIS 上发布。
当我向 WebApp 添加新内容时,更新工作正常并且所有内容都正确提供,但现在我刚刚对现有 API 进行了更新并且 API 只是return 没有任何内容,因为 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 的问题。我的猜测是您的路由配置需要更新。
IIS 中的更新项目不会更新应用程序池设置,因此不会触发应用程序池回收。
请尝试手动回收应用程序池或在更新项目 web 部署时回收应用程序池。
https://blogs.iis.net/msdeploy/operations-on-application-pools-as-admin-and-non-admin
我有一个 WebApp,里面有一些 WebApi 2,WebApp 在服务器 运行 IIS 上发布。
当我向 WebApp 添加新内容时,更新工作正常并且所有内容都正确提供,但现在我刚刚对现有 API 进行了更新并且 API 只是return 没有任何内容,因为 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 的问题。我的猜测是您的路由配置需要更新。
IIS 中的更新项目不会更新应用程序池设置,因此不会触发应用程序池回收。
请尝试手动回收应用程序池或在更新项目 web 部署时回收应用程序池。
https://blogs.iis.net/msdeploy/operations-on-application-pools-as-admin-and-non-admin