问题描述 在本地开发的站点,响应头中的中文可以正常显示,部署到Azure App Service站点后,响应中文乱码.通过多方面验证,在代码中设置Response的Headers会显示乱码,而直接配置在Web.Config中的Header则能正常显示. 代码中写的中文会乱码 context.HttpContext.Response.Headers.Add("ChineseTest", "中"); 在web.config中的正常显示 <system.webSer…
问题:下载文件时文件名乱码怎么解决? 在C#写后台代码过程中,经常遇到下载文件出现文件名乱码的问题,在网上找了很多方法,总是存在浏览器不兼容的问题,当IE浏览器不乱码时,火狐浏览器就会乱码,后来经过反复研究,发现一个问题,那就是我们主流的浏览器中火狐浏览器与其他浏览器(IE.Chrom等等)还真是不一样,所以,在下载写入头部分是先做一个判断,判断是否为火狐浏览器,后来发现完全没问题! var filename = year + "xxxx.xls"; //判断是否为火狐浏览器 var…
将 utf-8 转换成 ISO8859-1 编码 response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO8859-1"));…
问题情形 当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误.当面临这样的情形是,有效的排查办法就是在问题重现的时候抓取DUMP文件,可以通过DUMP文件分析出是否有线程死锁,或查看时那些请求导致的死锁问题.也可以定位到相关的自定义代码类文件.非常助于下一步的查找问题. 抓取DUMP文件 1) 利用App Service自带Kudu的工具获取DUMP文件 登录进当前应…
最近在做一个下载工具时,发现CSDN上的资源下载时竟然没有被拦截到,经过分析,终于有了一个发现,解决了我之前做文件下载时的乱码问题,所以转载这篇释疑文章,希望有人可以看到,可以从中得到帮助,也用来备忘. CSDN中的下载时Header里的内容是这样的: 键 值Content-Disposition attachment; filename*=UTF-8''Reflector.rar 针对上面这种写法的解释,主要是指filename后面的写法,于是转载以下内容,大家请看: ************…
问题描述 Azure App Service (应用服务)如何安装PHP的扩展 mcrypt(mcrypt 是php里面重要的加密支持扩展库) 准备条件 创建App Service, Runtime stack 选择为PHP,如图 下载mcrypt插件,mcrypt 1.0.3 for Windows, 注意选择的版本需要与App Service中PHP的版本一致.如PHP 7.2  -- 7.2 Non Thread Safe (NTS) x86 注:选择Non Thread的原因是因为App…
问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart-python.py, hostingstart-python.html,  在配置文件中,通过pythonpath来指定启动目录,而 WSGI_HANDLER 则指定启动的py文件为 hostingstart-python.py. web.config <configuration> <ap…
问题描述 在Azure App Service中,有对.Net,Java的WebSocket支持的示例代码,但是没有成功的PHP代码. 以下的步骤则是如何基于Azure App Service实现PHP版的websocket. 实现步骤 参考PHP代码链接:(GitHub:https://github.com/ghedipunk/PHP-Websockets, 本地博客园:https://www.cnblogs.com/lulight/articles/13787309.html).但由于这一示…
问题描述 在PHP项目部署在App Service后,上传文件如果大于1MB就会遇见 413 Request Entity Too Large 的问题. 问题解决 目前这个问题,首先需要分析应用所在的环境. 在App Service for Linux环境中,为PHP提供的运行时当前只有PHP 8.0, 并且 PHP 8.0 中使用的Nginx作为代理服务器.然后请求才会传递到PHP应用中. 基于以上分析,在PHP应用中,会收到Nginx 和PHP双重限制.所以传递文件的限制问题设计到两个方面:…
问题描述 众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所以当遇见一些实例级的问题时,可谓一点办法也没有. 这时,一些Azure提供的排查工具就非常有用,如在App Service for Windows的情况下,我们可以通过Kudu工具进行文件管理,如下载日志,修改web.config配置,运行抓取DUMP的命令(或查看进行直接抓取DUMP,详见:([应…
测试App Service是否可以访问其他DNS 当应用服务(Azure App Service)创建完成后,想通过ping命令来查看是否可以访问其他站点或解析DNS,但是发现ping命令无法使用.这是因为App Service存在安全约束,因此无法通过控制台运行 ping.nslookup 和 tracert 工具 .为了测试DNS功能和测试主机TCP的连接问题,App Service 提供了两个命令 nameresolver.exe 用于测试 DNS 功能,命令格式为:nameresolve…
问题描述 在使用Azure App Service(应用服务)时,有时候需要在不同的站点之间进行跳转,但是希望通过通过访问同一个域名的方式来实现反向代理.如果创建应用时候选择的是Window服务,这时候可以参考以下的方式配置IIS 的Proxy + Rewrie 如网站一为PHP站点,它的首页是:https://lbphptest.chinacloudsites.cn/, 网站二是Java站点,它的首页是:https://lbjavatest.chinacloudsites.cn/ 站点一:PH…
留坑 参考: 正确处理下载文件时HTTP头的编码问题(Content-Disposition) HTTP协议header中Content-Disposition中文文件名乱码 文件下载,content-disposition 中文乱码 Content-Disposition 文件上传.下载 中文乱码 HTTP头 解决办法 Java Jersey…
下载文件时-修改文件名字   1后台代码 /// <summary> /// 文件下载2 /// </summary> /// <param name="FileName">需要修改的文件名</param> /// <param name="FilePath">文件路径路径</param> public void BigFileDownload(string FileName, string F…
如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作.在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件). 作者:Aaron Kili来源:Linux中国|2017-03-09 14:42 移动端 收藏 分享 51CTO诚邀您9月23号和秒拍/国美/美团元专家一起聊智能CDN的优化之路…
问题描述 在使用Azure App Service时候,我们有时候对 一些请求发生错误毫无头绪,能从错误代码中知道请求错误,但是更多的信息呢? 当我们需要更多的信息时候,通常有以下的一些方式来查找问题: 在浏览器中开启开发者模式(F12),查看Network的记录,分析那些请求错误,找出请求Header及Response... 使用Fiddler抓取本机发出的请求记录... 在代码中添加更多的业务日志,查看代码运行到哪一行才出现错误... 使用Postman发送请求,验证是否时请求的Header…
问题描述 有些情况下,当应用部署到App Service上后,在有些Response Header中,可以看见关于服务器的一些信息,这样会导致隐藏的安全问题,所以可以在web.config中移除某些关键的Header信息.如X-Powered-By. 解决方案 在web.config中的httpProtocol中使用remove name来移除需要的header. <?xml version="1.0" encoding="UTF-8"?> <co…
问题情形 当访问部署在Azure App Service中的应用返回 "The remote name could not be resolved: ''xxxxxx.com'" 时,而您在公网中通过nslookup有能够解析成功.这个时间第一怀疑对象为Azure数据中心的DNS服务器没有您当前域名的信息. 详细日志 The remote name could not be resolved: ''xxxxxx.com'  问题原因 以上的情况,往往是发生在该第三方服务的域名解析还未配…
问题描述 正常情况下,如果需要为应用服务安装SSL证书,可以在证书准备好的情况,通过门户上传即可,详细步骤可以参考微软官方文档(在 Azure 应用服务中添加 TLS/SSL 证书:https://docs.azure.cn/zh-cn/app-service/configure-ssl-certificate), 但是由于Global Azure和中国区Azure的不同之处,在中国区微软云无法直接在门户中导入Key Vault中的证书. 以下是两个版本页面之间的不同之处: 中国区 Azure…
问题描述 中国区的Azure App Service(应用服务)已经支持创建Docker并选择Linux环境.在使用中,我们可以继续通过kudu站点的方式登录查看站点的一些日志及部署文件.它的登录方式与App Service Windows方式一样(通过门户目录的Advance Tool登录,或在URL中添加.SCM登录).如想要跟多的操作及Linux SSH方式,在微软的官方站点中,推荐有两种登录方式: 在浏览器中打开 SSH 会话 从远程 shell 打开 SSH 会话(https://do…
问题情形 有时候部署在 Azure  App Service的 Java应用会出现乱码 详细日志 无 问题原因 因为 App Service默认的编码为gbk,所以在显示页面或传递中文字符时就会出现乱码. 解决方案 部署在App Service的Java应用,都会在site/wwwroot 文件夹下创建 web.config 文件.需要在environmentVariable中添加-Dfile.encoding=UTF-8. <configuration> <system.webServ…
问题情形 使用EF Core访问数据库,在本地运行正常,发布到App Service后,偶尔出现了Cannot create a DbSet for ** because this type is not included in the model for the context,根据错误,初步怀疑是部署的DLL版本不匹配或者丢失. 详细日志 无详细日志 问题原因 根据对错误的分析和源代码中包含中文字符进行分析,应该是客户本地环境中编译后的DLL文件在本地环境本正常识别,但是默认情况下,发布到A…
问题情形 应用程序发布到App Service后,时间显示不是北京时间,默认情况为UTC时间,比中国时间晚 8 个小时. 详细日志 无 问题原因 Azure 上所有的服务时间都采用了 UTC 时间. 解决方案 如要修改为北京时间,则在App Service的配置页面,"应用设置"节点,添加"WEBSITE_TIME_ZONE",并将值设置为"China Standard Time". 参考资料: 如何修改网站默认时区:https://docs.a…
问题描述 在使用App Service (Windows)做文件/图片上传时候,时常遇见上传大文件时候出现错误,这是因为IIS对文件的大小由默认限制.当遇见(Maximum request length exceeded)错误时,需要对通过web.config来修改请求体的大小. 在应用的发布文件中,如果包含了web.config文件,则可以自己在文件中修改后重新发布.也可以直接登录kudu站点(两种方式登录Kudu.一:Azure App Service Overview -> Advance…
问题描述 Azure App Service在部署的时候支持多种方式,如Zip,VS 2019, VS Code,或者是Git部署,当使用Git部署遇见500错误时,可以通过其他的部署方式来验证是否也同样不可以成功.也可以直接登录到Kudu站点,拖拽文件的方式部署站点. 如以下图片就是在使用Git部署时候遇见的错误: 由于这里的错误信息只是返回500,而没有跟多详细的错误日志,所以可以通过 git log -p 命令打印出全部日志.查看是否有可以定位错误的信息,在这次的500错误中,git 日志…
问题描述 云计算的趋势已成定局,作为一个开发者,如果想对PaaS服务中的应用服务有一个初步的了解,从那些资料入手呢? 以Azure的官方文档作为基础库,从中选择出部分内容,分为:本地开发工具,App Service概述,开发准备,发布准备,运维(App Service配置),高级管理及指导文档部分. 本地开发工具 Visual Studio 2019 Visual Studio Code 下载地址:https://visualstudio.microsoft.com/downloads/ 概述…
今天遇到在thinkphp框架中获取不到header头里边的 Authorization ,后来在.htaccess里面加多一项解决,记录下: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.ph…
问题情形 本地NodeJS应用使用Egg脚手架构建,本地运行测试完全没有问题,发布后App Service后不能运行.通过登录到kudu后(https://<your web site>.scm.chinacloudsites.cn)后,在日志中发现找不到一个文件或路径的错误.通过在kudu的CMD窗口执行npm start命令,发现错误是一致,怀疑是对Egg中某个框架的不支持. 详细日志 Application has thrown an uncaught exception and is…
首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark).不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件,…
在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebClient 并不包含在 .net standard 当中.在 .net standard 中,要进行 http 网络请求,我们用得更多的是 HttpClient.另外还要注意的是,UWP 中也有一个 HttpClient,虽然用法差不多,但是命名空间是不一样的,而且 UWP 的是可以支持获取下载进度…