使用 CheckAndDownloadUpdateAsync() 更新 OOB 期间出现灾难性错误
Catastrophic error during OOB update using CheckAndDownloadUpdateAsync()
这个错误让我陷入困境,可能有人经历过类似的事情并且知道如何解决?
问题是调用 CheckAndDownloadUpdateAsync() 时向服务器发送请求并且服务器 returns 304 或 200 HTTP 代码。在 200 的情况下,Silverlight 运行时执行应用程序的更新。但它不会发生在我身上。奇怪的是它适用于 Mac,但不适用于 Windows。
请求
GET https://somedomain.com/some.xap HTTP/1.1
If-Modified-Since: Mon, 01 Jun 2015 15:13:18 GMT
User-Agent: Silverlight
Host: somedomain.com
回应
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Last-Modified: Tue, 14 Jul 2015 13:02:36 GMT
X-Request-ID: v-5daa5e84-2a36-11e5-bbce-22000ac00b9d
X-AH-Environment: preprod
X-Cache-Hits: 2
X-Age: 1989
Expires: Tue, 14 Jul 2015 15:14:18 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Tue, 14 Jul 2015 15:14:18 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Connection: Transfer-Encoding
X-Akamai-Staging: ESSL
SL 运行时获得有效的 200 OK 响应,但抛出灾难性错误消息而不是更新应用程序。但是从另一个域它可以工作:
请求
GET https://somedomain.com/some.xap HTTP/1.1
If-Modified-Since: Sat, 01 Jan 2000 00:00:00 GMT
User-Agent: Silverlight
Host: somedomain.com
回应
HTTP/1.1 200 OK
Content-Type: application/x-silverlight-app
Last-Modified: Tue, 14 Jul 2015 10:07:05 GMT
Accept-Ranges: bytes
ETag: "ee4445d61cbed01:0"
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
X-Frame-Options: SAMEORIGIN
Date: Tue, 14 Jul 2015 10:09:04 GMT
Content-Length: 3993496
我已经尝试在有问题的服务器上将内容类型更改为 application/octet-stream 和 application/x-silverlight-app - 没有。错误是一样的。 Xap 已签名,正如我所说,这适用于 Mac,不适用于 Windows。
请告诉我你的想法。
谢谢。
问题在
Transfer-Encoding: chunked
它扰乱了整个 Silverlight 更新体验。 .xap 的 body 是 return 块,Silverlight 运行时不喜欢它。使服务器 return normal/non-chunked 响应内容长度 header 集解决了这个问题。
干杯。
这个错误让我陷入困境,可能有人经历过类似的事情并且知道如何解决?
问题是调用 CheckAndDownloadUpdateAsync() 时向服务器发送请求并且服务器 returns 304 或 200 HTTP 代码。在 200 的情况下,Silverlight 运行时执行应用程序的更新。但它不会发生在我身上。奇怪的是它适用于 Mac,但不适用于 Windows。
请求
GET https://somedomain.com/some.xap HTTP/1.1
If-Modified-Since: Mon, 01 Jun 2015 15:13:18 GMT
User-Agent: Silverlight
Host: somedomain.com
回应
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Last-Modified: Tue, 14 Jul 2015 13:02:36 GMT
X-Request-ID: v-5daa5e84-2a36-11e5-bbce-22000ac00b9d
X-AH-Environment: preprod
X-Cache-Hits: 2
X-Age: 1989
Expires: Tue, 14 Jul 2015 15:14:18 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Tue, 14 Jul 2015 15:14:18 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Connection: Transfer-Encoding
X-Akamai-Staging: ESSL
SL 运行时获得有效的 200 OK 响应,但抛出灾难性错误消息而不是更新应用程序。但是从另一个域它可以工作:
请求
GET https://somedomain.com/some.xap HTTP/1.1
If-Modified-Since: Sat, 01 Jan 2000 00:00:00 GMT
User-Agent: Silverlight
Host: somedomain.com
回应
HTTP/1.1 200 OK
Content-Type: application/x-silverlight-app
Last-Modified: Tue, 14 Jul 2015 10:07:05 GMT
Accept-Ranges: bytes
ETag: "ee4445d61cbed01:0"
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
X-Frame-Options: SAMEORIGIN
Date: Tue, 14 Jul 2015 10:09:04 GMT
Content-Length: 3993496
我已经尝试在有问题的服务器上将内容类型更改为 application/octet-stream 和 application/x-silverlight-app - 没有。错误是一样的。 Xap 已签名,正如我所说,这适用于 Mac,不适用于 Windows。
请告诉我你的想法。
谢谢。
问题在
Transfer-Encoding: chunked
它扰乱了整个 Silverlight 更新体验。 .xap 的 body 是 return 块,Silverlight 运行时不喜欢它。使服务器 return normal/non-chunked 响应内容长度 header 集解决了这个问题。
干杯。