C# 使用android手机浏览器从Asp.net网站下载.apk时出错

C# 使用android手机浏览器从Asp.net网站下载.apk时出错,c#,android,asp.net,.net,apk,C#,Android,Asp.net,.net,Apk,在我的.aspx页面中,我有一个下载按钮,单击该按钮可以下载.apk文件 当我在我的电脑上运行时,它工作正常。apk文件在我的电脑上下载但当我使用android手机时,请转到该网站并单击“下载”按钮,它将开始下载,但文件单击会出现错误解析软件包时出现问题。 另外,实际文件大小为604kb(从andorid phone下载时给出22kb) 下载的文件(22kb)包含html内容 这可能与我在Android本机浏览器中遇到的问题相同。问题是下载操作被传递到平台的下载应用程序(与浏览器分离),该应用程

在我的
.aspx
页面中,我有一个下载按钮,单击该按钮可以下载
.apk
文件

当我在我的电脑上运行时,它工作正常。apk文件在我的电脑上下载
但当我使用android手机时,请转到该网站并单击“下载”按钮,它将开始下载,但文件单击会出现错误解析软件包时出现问题。

另外,实际文件大小为604kb(从andorid phone下载时给出22kb

下载的文件(22kb)包含html内容


这可能与我在Android本机浏览器中遇到的问题相同。问题是下载操作被传递到平台的下载应用程序(与浏览器分离),该应用程序重新加载页面,而不是真正的APK,它下载aspx页面


尝试使用Opera Mobile下载。如果问题消失了,很可能是同一个问题。用标准超链接替换按钮将是最简单的解决方案。不过,如果您还需要其他逻辑,而不只是下载,那么这可能不是一个选项。

以下是我解决问题的方法

我的应用程序托管在Windows server 2008r2下,具有IIS 7

步骤1:在.aspx页面中添加超链接将navigateurl设置为文件路径

<asp:HyperLink ID="lnkdwnload" runat="server" NavigateUrl="~/Application_Android/MyAndroidAppAame.apk">Download MyApp</asp:HyperLink>
下载MyApp
步骤2:Web.config在staticContent下添加mimeMap元素

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive"/>
    </staticContent>
</system.webServer>


当你直接进入下载链接时,你能下载你的文件吗?所以这不是bug,但是:我认为每1k刷新一次太快了!此外,没有理由在每个循环上重新创建缓冲区。是否有任何情况下android有保护且不允许下载.apk文件?这一行还可能创建您的错误
响应。写入(“错误:+ex.Message”)-您需要记录错误。如果你在数据中间发送这个错误文本,那么你的包就坏了。@ TIMVK是的,我可以从我的电脑下载文件。也可以从我的手机浏览器上下载,但下载不完全只有22kbdownloaded@satindersingh我的意思是,只需在android设备的浏览器中输入完整的URL,而不是通过您的页面进行下载?您已尝试使用opera mini浏览器,但仍然存在相同的问题,仅下载了22kb。请检查文件的内容,它是二进制还是纯文本?downld文件(22kb)只包含html内容。听起来和我怀疑的问题一样。这里更详细地描述了该场景:您是否考虑过将按钮更改为标准超链接?
<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive"/>
    </staticContent>
</system.webServer>