调试web config 中出现如下问题

问题1: 元素"compilation"的子元素"compilers"无效。
    reason:   VS.Net2003中.Net Feamework的版本是1.1,而到VS.Net2005下的.net Framework 的版本是2.0;
              在2.0下compilation的compilers元素已被否决,改为 system.codeDom 节的 compilers 元素。
        使用 compilation 元素的compilers 子元素仍然有效,重写位于 system.codedom 节中的 compilers 元素。
     解决方法:将 <compilation> </compilation>部分移除,并将 <compilers>部分写到 <system.codedom> </system.codedom>里

问题2:未能找到compiler的架构信息

解决:在web.config编辑界面中,单击“XML菜单栏”--“架构...”,生成即可。

    VS有很多预定义的.xsd文件,包括config文件的xsd定义信息。
complier不在xsd的定义中,所以VS会报一个消息,连警告也算不上。

所有的自定义配置项都会有这个现象,对程序没有影响的,或者你自己重新生成一个架构项也可。

 

问题3:在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的
原因:如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
解决:

1、若IIS中没有应用程序名,先创建,若还不行把C:/WINDOWS/Microsoft.NET/work/v2.0.50727 /CONFIG/machine.config中的所有allowDefinition="MachineToApplication"改为 allowDefinition="Everywhere"
2、在网站对应的虚拟目录上右键,选属性,然后在应用程序名后点创建。
3.把你的虚拟目录指向web.config所在在文件夹,因为 web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。

在应用程序级别之外使用注册为allowDefinition='MachineToApplication' 的节是错误的


在应用程序级别之外使用注册为allowDefinition='MachineToApplication' 的节是错误的在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
     但是我确实在IIS中配置为应用程序了

解决方法:将此方案中的web.config文件删除掉,就ok了。

因为当前项目已经存在了一个web.config,也就是说再添加该项目时,就会继承该web.config,如果你再加的话,就会发生冲突。

******************************************************************************************************************

在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的

原因:如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。

1、若IIS中没有应用程序名,先创建,若还不行把C:/WINDOWS/Microsoft.NET/work/v2.0.50727 /CONFIG/machine.config中的所有allowDefinition="MachineToApplication"改为 allowDefinition="Everywhere"

2、在网站对应的虚拟目录上右键,选属性,然后在应用程序名后点创建。

3.把你的虚拟目录指向web.config所在在文件夹,因为 web.config 的某些配置节只能出现在网站的虚拟目录跟目录中。

另例一:

在ASP.NET2.0中,如果根目录允许匿名用户访问,而根目录下的一个页面(如Index.aspx)必须要登录(假设登录页面为login.aspx)后才能访问,根目录下的web.config文件必须这样配置:

<?xml version="1.0"?>
<configuration>
<appSettings>
</appSettings>
<connectionStrings>
</connectionStrings>
<system.web>
        <compilation debug="true"/>
        <authentication mode="Windows"/>
           <authentication mode="Forms">
                <forms loginUrl="login.aspx" protection="All" path="/" timeout="30"/>
            </authentication>
        <authorization>
     <!--允许匿名-->
    <allow users="?"/>
    </authorization>
</system.web>
<location path="Info.aspx">
    <system.web>

<!--认证项配置(在为一个单独页面指定认证信息时,authentication节只能从这个目录继承,不能单独设置)-->
      <!--
      <authentication mode="Forms">
        <forms name=".www.cnpp.info" loginUrl="login.aspx" protection="All" path="/" timeout="30"/>
      </authentication>
      -->

<!--用户访问控制-->
        <authorization>
        <!--阻止匿名-->
        <deny users="?"/>
      </authorization>
    </system.web>
</location>
</configuration>

也就是在需要认证的页面配置节中不能配置authentication项,只能在在根目录中配置authentication 项,Info.aspx从根目录继承. 否则会出现这样的错误: "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误 "

另例二:

我想让用户在访问我的程序的Admin文件夹下的页面时需要登录,而在访问其他页面时则不需要,也就是说Admin文件夹下的文件拒绝匿名访问.
   下面是配置根目录下的web.config文件中关于授权验证的配置
   <system.web>
         <authentication mode="Forms">
             <forms loginUrl="Admin/Login.aspx"></forms>
         </authentication>
         <authorization>
             <allow users="*"/>
         </authorization>
   </system.web>
   <location path="Admin">
         <system.web>
             <authorization>
                 <deny users="?"/>
             </authorization>
         </system.web>
   </location>
   注意location节,location节不需要<authorization>节了,假若加了的话,便会出现"在应用程序级别之外使用注 册为 allowDefinition='MachineToApplication' "这样的错误了,若在子文件下添加配置文件时也要注意相同的问题.

******************************************************************************************************************
(1)把虚拟目录配置成应用程序
(2)把web.config的认证标签以及标签之间的东西全部去掉

说白了,这个问题应该是你没有将你的应用放在站点的根目录下吧,而是放在虚拟目录下,可能需要设置一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Studio是一款集成开发环境(IDE),用于开发各种类型的应用程序,包括Web应用程序。Visual Studio提供了丰富的功能和工具,以便开发人员能够更高效地创建、调试和部署应用程序。 在Visual Studio进行Web开发时,可以使用不同的框架和技术,其一种是使用Flask框架进行Python的Web开发。Flask是一个轻量级的Python Web框架,它与Python单元测试功能无缝衔接,使用Jinja2模板,完全兼容WSGI 1.0标准,并且基于Unicode编码。你可以通过创建一个Flask应用来开始Web开发,如下所示: ```python from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '<h1>Hello Python World!</h1>' if __name__ == '__main__': app.run() ``` 上述代码创建了一个名为`app`的Flask应用,并使用装饰器`@app.route('/')`将根路径映射到`index()`视图函数。当访问根路径时,将返回`<h1>Hello Python World!</h1>`。 除了使用Flask框架,Visual Studio还支持其他Web开发框架和技术,例如ASP.NET。ASP.NET是一种用于构建高性能、可扩展的Web应用程序的框架。在Visual Studio,可以使用ASP.NET Web API来创建和发布Web服务。在你的问题提到了一个方法`Register(HttpConfiguration config)`,这是用于在ASP.NET Web API注册配置的方法之一。通过调用这个方法,可以将Web API配置添加到应用程序,以便可以处理传入的HTTP请求。 如果你想在IIS上发布Web API,可以参考另一篇博文的指南。根据你提供的引用,你可以参照博文的第3、4和6步来发布Web API。请注意,具体的步骤可能会因你的环境和需求而有所不同。 总结起来,Visual Studio是一个功能强大的开发工具,可用于进行各种类型的Web开发,包括使用Flask框架进行Python的Web开发和使用ASP.NET Web API创建和发布Web服务。你可以根据自己的需求选择适合的框架和技术,并使用Visual Studio的丰富功能和工具来开发高质量的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值