本地用VS2010写的代码,调试的时候Web报表无法显示,用24.248服务器上VS2013同样仍是无法显示,最后把项目部署在IIS服务器上还是无法显示。
然后就是各种百度,度娘说在IIS上面没有建立MIME映射,所以浏览器无法加载grf文件。好吧,配置IIS的MIME类型:打开IIS管理器-->MIME类型-->添加,文件名为:.grf,MIME类型:PrintReports/代理费结算表.grf。
奇迹出现了,IIS上发布的Web报表可以正常访问了。可我无法在调试阶段查看运行效果,每次必须在VS2010上修改、提交代码,然后在24.248服务器的VS2013上更新、生成、发布代码,最后在IIS上查看效果。怎么样,很挠头吧!
解决方案一:为IIS Express添加MIME映射。如果电脑上安装的是VS2010,则必须首先安装IIS Express调试服务器,因为VS2010自带的Asp.Net Development Server,无法添加MIME映射,关于IIS Express的安装和使用,可以参考博客:IIS的配置使用;如果电脑上安装的是VS2013,则可以直接在IIS Express中添加MIME映射。操作如下:
1.在DOS窗口下进入IIS Express安装目录,默认是“C:\Program Files\IIS Express”;
2.在IIS Express安装目录下执行命令:appcmd set config /section:staticContent /+[fileExtension=‘.xyz‘,mimeType=‘text/plain‘]
PS:变量 fileExtension 字符串是文件扩展名,变量 mimeType 字符串是文件类型说明,比如我执行的命令是:appcmd set config /section:staticContent /+[fileExtension=‘.grf‘,mimeType=‘PrintReports/代理费结算表.grf‘]
现在在调试状态下,浏览器也可以打开Web报表了。
解决方案二:通过Jenkins管理SVN和IIS,设置Jenkins只要有代码提交,IIS就重新发布,这样也能时时看到我们提交的代码。不过这样服务器的压力肯定很大,不推荐这样做。
到此,问题已经解决,终于可以舒口气了。