关于配置webservice的几点问题
1.asp.net出现:当前标识(NT AUTHORITY\NETWORK SERVICE)没有对' '的写访问权限。
当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限
检查.net 安装环境一切正常,权限正常,仍然解决不了问题,总不能重装吧?最后终于在网上找到了解决方案。
运行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i -enable
系统会显示正在安装.net。稍后一切恢复正常。
配置错误:
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
源错误:
行 24: 以标识传入的用户。
行 25: -->
行 26: <authentication mode="Windows"/>
行 27: <!--
行 28: 如果在执行请求的过程中出现未处理的错误,
源文件: D:\\web\\web.config 行: 26
显示其他配置错误:
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 (D:\\web\\web.config line 39)
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.832; ASP.NET 版本:2.0.50727.832
IIS 里面都设置好了,而且如果在VS 2005环境下运行也不可以,同样的错误!
--------------------------------------------------------------------------------
原因:Machine.config里的allowDefinition="MachineToApplication"。
解决1:把allowDefinition设为:Everywhere。考虑到最好不要改动Machine.config文件,否则可能会引起其他错误。
解决2: <authentication mode="Forms"> 是应用级别的,不能在子目录级别的web.config内
设置,把它放在应用级别的web.config里,在子目录下用 <authorization>节来控制访问。
即: <system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
根目录下的web.config:
<authentication mode="Forms">
<forms loginUrl="~/admin/login.aspx" name="login" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
(解决3:把admin子目录配置为应用程序,应该就没错了,不过没有经过测试,需要测试后才能验证。)
1、若IIS中没有应用程序名,先创建,若还不行把C:\\WINDOWS //microsoft.net//work//v2.0.50727//CONFIG//machine.config中的所有 allowDefinition="MachineToApplication"改为allowDefinition="Everywhere"
2、在网站对应的虚拟目录上右键,选属性,然后在应用程序名后点创建。
我按他们说的找没找到,最终我理解就是
把你的虚拟目录指向web.config所在在文件夹,因为 web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。
分析:没有把程序目录设为虚拟目录。
打开管理工具--Internet 信息服务,找到我的网站下的我的asp.net文件夹,右键选属性,在 "应用程序设置"这里,点一下 创建 ,给它分配和站点相同的程序池,确定,ok了
试过了,确定能解决。
2在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0016: 未能写入输出文件“d:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\5177u\d087da43\c12930d8\9ze28k_8.dll”--“拒绝访问。 ”
源错误:
[没有相关的源行]
源文件: 行: 0
解决办法:
前几天碰到这个问题,试过很多方法,比如:停止索引服务,重装IIS,重装.Net Framework,删除
Temporary ASP.NET Files目录再重赋权限,甚至重装系统,问题依旧;还有一点很奇怪,我重装系统前赋
予了Temporary ASP.NET Files文件夹asp.net,network service和everyone用户的最大权限,但是我格式化重装
系统后,Temporary ASP.NET Files目录的权限设置居然跟重装系统之前一样,不知是不是NTFS文件系统
的问题,网上搜了一下,很多人碰到这个问题想到的都是给Temporary ASP.NET Files目录赋权限,我开始
也是这样,最后在微软的网站搜到了这个问题的解决方法,其实很简单,只要在windows/temp权限设置里
面把Network service(如果是win2000则是asp.net用户)的权限加上就行。
具体解决方法请参照
http://support.microsoft.com/default.aspx?scid=kb;en-us;825791