在配置IIS负载均衡时,引起的一系列问题
问题一:
IIS中要上传文件的路径是另一台服务器的地址(如:本机IP是192.168.0.100,文件保存的路径在://192.168.0.101/images/folder),在上传时抛出异常:
ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.
To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.
解决的办法:在webconfig中增加配置节点:
<identity impersonate="true" userName="administrator" password="P1234!@#$" />
问题二:
在打开(或下载)文件(writeFile)时,又一直提示上面的那个异常错误。
一直在权限的道路上折腾、摸索、修改。直到最后才怀疑是不是代码有问题,现在贴出修改后的完整代码:
Response.Clear();
// 必须有这一行才能打开,否则会弹出下载保存确认框
Response.AddHeader("Content-Disposition", "inline;filename=" + Server.UrlEncode(fi.FullName));
Response.AddHeader("Content-Length", fi.Length.ToString()); // 可有可无
Response.ContentType = "application/octet-stream;charset=gb2321"; // 可有可无
Response.WriteFile(fi.FullName);
Response.Flush(); // 必须有这一行
Response.Close();
高亮的那几行代码非常重要,其中Content-Disposition也起了决定性作用,Content-Disposition的两个值代表的含义:
////attachment --- 作为附件下载
////inline --- 在线打开
附上源码:
protected void btnReadFile_Click(object sender, EventArgs e)
{
string path = Path.Combine(this.txtFolderPath.Text, this.txtFilePath.Text);
FileInfo fi = new FileInfo(path);
if (fi.Exists)
{
//Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(fi.Name));
//Response.AddHeader("Content-Length", fi.Length.ToString());
//Response.ContentType = "application/octet-stream;charset=gb2321";
Response.WriteFile(fi.FullName);
Response.Flush();
Response.End(); labResult2.Text = "OK!";
}
else
{
labResult2.Text = "Error.File not Exists!";
}
}
下载文件代码
其他下载文件的几个函数,则大同小异,网上资料很多。
问题三:
重写URL在线下没有问题,部署到IIS中却出现404的问题。
IIS 在网上百度无数次,在google翻墙无数次,去配置应用程序映射(仍然没有解决问题),去配置日志跟踪(仍然没有解决问题),甚至重新安装了IIS某些配置。最后非常仔细的对比两个服务器(一个服务器没有问题,一个服务器有问题)的应用程序池配置,shit!发现“启用32位应用程序”一个是“true”,一个是“false”,操,改成true之后,终于不再抛出404了。
问题四:
将“启用32位应用程序”改成“True”后,oracle会连接不上,然后又从线下32位的机器上拷了一个oracle_DataAccess.dll上去,结果又抛出下面这个异常:
The provider is not compatible with the version of Oracle client
很明显的,提示oracle_DataAccess版本不一致。后来查了资料(主要是查的如何启用32位应用程序又能使用64位的oracle数据库)还是无果。最后想到帮我解决了问题三的那一台服务器,从里面的一个站点把oracle相关的dll全部拷过来(先把出问题的那个服务器站点的oracle相关的dll全部删除)后,成功了!!!
在配置IIS负载均衡时,引起的一系列问题的更多相关文章
- IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...
- 解决nginx配置负载均衡时invalid host in upstream报错
当前平台: windows nginx版本: 1.11.5 前言: 在配置负载均衡时,同时也需要设置反向代理,当修改了nginx.conf时,发现nginx服务无法开启. 1. 打开"ngi ...
- 服务器配置,负载均衡时需配置MachineKey
服务器配置,负载均衡时需配置MachineKey https://blog.csdn.net/liuqiao0327/article/details/54018922 Asp.Net应用程序中为什么要 ...
- IIS负载均衡ARR路由请求到ARR服务器和处理服务器
.net web 使用IIS ARR(Application Request Route)技术实现web的高性能.高可靠.易扩展及负载均衡.ARR的使用请参考 IIS负载均衡-Application ...
- windows网络服务之配置网络负载均衡(NLB)群集
O首页51CTO博客我的博客 搜索 每日博报 社区:学院论坛博客下载更多 登录注册 家园 学院 博客 论坛 下载 自测 门诊 周刊 读书 技术圈 曾垂鑫的技术专栏 http:// ...
- office web apps安装部署,配置https,负载均衡(七)配置过程中遇到的问题详细解答
该篇文章,是这个系列文章的最后一篇文章,该篇文章将详细解答owa在安装过程中常见的问题. 如果您没有搭建好office web apps,您可以查看前面的一系列文章,查看具体步骤: office we ...
- office web apps安装部署,配置https,负载均衡(五)配置服务器场
前提条件:您已经完成了域控制器的配置,拥有域账号,并且已经安装了OWA启动所需要的必要软件: 具体步骤可以参考: office web apps安装部署,配置https,负载均衡(一)背景介绍 off ...
- 配置nginx负载均衡
配置nginx负载均衡 执行命令:vi /usr/local/nginx/sbin/nginx/conf/nginx.conf 修改为: worker_processes 2; events { ...
- IIS负载均衡(转)
在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面: 1.IIS 负载均衡. 2.数据库 负载均衡. 3.系统 ...
随机推荐
- Uncaught ReferenceError: console is not defined
今天写javascript代码遇到了这个极其神奇的问题,居然报错说内置的console不存在,而且后来我换成了alert也不行.照例说这些都是js代码内置的东西不应该出现这种错误.不过百度之发现貌似没 ...
- java thread run and start
在java中继承Thread,线程启动有两中方法:start()和run().下面简单介绍一下两者的区别. start():启动一个线程,此时线程处于就绪状态,然后调用Thread对象的run()方法 ...
- 如何解决虚拟机Mac OS X 不支持二进制编译问题()
本文将着重解决在使用VMware 11安装Mac OS虚拟机出现”Mac OS X 不支持二进制编译.若要运行 Mac OS X 主机上需要一个 VMware Workstation 支持英特尔 VT ...
- barabasilab-networkScience学习笔记3-随机网络模型
第一次接触复杂性科学是在一本叫think complexity的书上,Allen博士很好的讲述了数据结构与复杂性科学,barabasi是一个知名的复杂性网络科学家,barabasilab则是他所主导的 ...
- Android学习笔记(一)——安卓开发环境搭建
安装教程以及资源(2015.11.8最新版):链接:http://pan.baidu.com/s/1kTnOsMr 密码:0ogf
- 【java 断点续传】
模拟 断点续传 首先,先读取word文件的 一部分 package com.sxd.readLines; import java.io.File; import java.io.FileInputSt ...
- phpstudy配置ssl
https://yunpan.cn/cPEyzVycbkiE3 (提取码:03aa) 1.重写规则:http://www.cnphp.info/htaccess-rewrite.html 2.相关文档 ...
- set UVA 11136 Hoax or what
题目传送门 题意:训练指南P245 分析:set维护,查询删除最大最小值 #include <bits/stdc++.h> using namespace std; typedef lon ...
- jquery toastr introduction
1.资源 http://www.jq22.com/jquery-info476 http://www.jq22.com/yanshi476 Nuget Install-Package toastr 官 ...
- ural 2062 Ambitious Experiment
2062. Ambitious Experiment Time limit: 3.0 secondMemory limit: 128 MB During several decades, scient ...