what os are you using?disable Indexing Service if you are running itmake sure ASPNET account has full access to C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files

解决方案 »

  1.   

    To  saucer(思归) :谢谢!我使用的操作系统是Win XP Pro版。
    我把Indexing Service服务设为手动启动,所以没有启动和使用这项服务。至于将ASPNET这个WinXP的用户帐号,给它赋予权限,使其能完全访问
    %SystemRoot%\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files。这样就行了吗?好吧,我先这样试试了,看行不行。谢谢啦!
      

  2.   

    To  saucer(思归) :不行啊,还是报错啊!我在我的Win XP Pro进行如下操作:开始按钮->所有程序->管理工具->计算机管理->系统工具->本地用户和组->用户
    然后找到ASPNET用户,双击打开它的属性,在“隶属于”页,添加了“Administrators”、“VS Developers”两个用户组,使其隶属于它们。然后在“资源管理器”中展开到E:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files
    文件夹,右击它点其“属性”,然后在“常规”页,把其“只读”属性去掉,再点“高级……”按钮,勾选“可以存档文件夹”选项,确定,再确定,出现“确认属性更改”对话框,选“将更改应用于该文件夹、子文件夹和文件”。并在VS .net中把那个叫做Math的Web Servise程序,重新编译了一遍,就是点VS ,net的IDE主菜单“生成”->“重新生成 Math”,然后“生成”->“重新生成解决方案”,都成功通过了,在调试输出窗口没有一点错误提示,再“调试”->“开始执行(不调试)”。结果却又报错如下:
    “/Math”应用程序中的服务器错误。
    --------------------------------------------------------------------------------编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0234: 类型或命名空间名称“Global”在类或命名空间“System.Math”中不存在(是否缺少程序集引用?)源错误: 行 26:     
    行 27:     [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
    行 28:     public class Global_asax : Math.Global {
    行 29:         
    行 30:         private static bool __intialized = false;
     源文件: E:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\math\73959edd\378fd6a1\duviok3e.0.cs    行: 28 显示详细的编译器输出:
    E:\WINDOWS\system32> "e:\windows\microsoft.net\framework\v1.0.3705\csc.exe" /t:library /utf8output /R:"e:\windows\microsoft.net\framework\v1.0.3705\mscorlib.dll" /R:"e:\windows\assembly\gac\system.web\1.0.3300.0__b03f5f7f11d50a3a\system.web.dll" /R:"e:\windows\assembly\gac\system\1.0.3300.0__b77a5c561934e089\system.dll" /R:"e:\windows\assembly\gac\system.data\1.0.3300.0__b77a5c561934e089\system.data.dll" /R:"e:\windows\assembly\gac\system.web.services\1.0.3300.0__b03f5f7f11d50a3a\system.web.services.dll" /R:"e:\windows\microsoft.net\framework\v1.0.3705\temporary asp.net files\math\73959edd\378fd6a1\assembly\dl\28ec5739\20f9ef56_ab70c201\math.dll" /R:"e:\windows\assembly\gac\system.drawing\1.0.3300.0__b03f5f7f11d50a3a\system.drawing.dll" /R:"e:\windows\assembly\gac\system.enterpriseservices\1.0.3300.0__b03f5f7f11d50a3a\system.enterpriseservices.dll" /R:"e:\windows\assembly\gac\system.xml\1.0.3300.0__b77a5c561934e089\system.xml.dll" /out:"E:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\math\73959edd\378fd6a1\duviok3e.dll" /D:DEBUG /debug+ /optimize- /warnaserror /w:1  "E:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\math\73959edd\378fd6a1\duviok3e.0.cs"Microsoft (R) Visual C# .NET Compiler version 7.00.9466
    for Microsoft (R) .NET Framework version 1.0.3705
    版权所有 (C) Microsoft Corporation 2001。保留所有权利。E:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\math\73959edd\378fd6a1\duviok3e.0.cs(28,37): error CS0234: 类型或命名空间名称“Global”在类或命名空间“System.Math”中不存在(是否缺少程序集引用?) 显示完整的编译源:
    行 1:    //------------------------------------------------------------------------------
    行 2:    // <autogenerated>
    行 3:    //     This code was generated by a tool.
    行 4:    //     Runtime Version: 1.0.3705.0
    行 5:    //
    行 6:    //     Changes to this file may cause incorrect behavior and will be lost if 
    行 7:    //     the code is regenerated.
    行 8:    // </autogenerated>
    行 9:    //------------------------------------------------------------------------------
    行 10:   
    行 11:   namespace ASP {
    行 12:       using System;
    行 13:       using System.Collections;
    行 14:       using System.Collections.Specialized;
    行 15:       using System.Configuration;
    行 16:       using System.Text;
    行 17:       using System.Text.RegularExpressions;
    行 18:       using System.Web;
    行 19:       using System.Web.Caching;
    行 20:       using System.Web.SessionState;
    行 21:       using System.Web.Security;
    行 22:       using System.Web.UI;
    行 23:       using System.Web.UI.WebControls;
    行 24:       using System.Web.UI.HtmlControls;
    行 25:       
    行 26:       
    行 27:       [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
    行 28:       public class Global_asax : Math.Global {
    行 29:           
    行 30:           private static bool __intialized = false;
    行 31:           
    行 32:           public Global_asax() {
    行 33:               if ((ASP.Global_asax.__intialized == false)) {
    行 34:                   ASP.Global_asax.__intialized = true;
    行 35:               }
    行 36:           }
    行 37:       }
    行 38:   }
    行 39:   
     
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET 框架版本:1.0.3705.0; ASP.NET 版本:1.0.3705.0 请再帮帮我呀!急啊!紧急求救啊!到底怎么回事啊?运行其他C#程序,或者VC++、VB还有ASP .net都没问题呀,为什么就运行Web Services就有很多时候不行(有的时候又行了,又能正常执行)呢?!到底怎么解决啊?!请大家一定帮我啊!我可真菜透了!!!救救我吧!!!!!!
      

  3.   

    it is very odd, try to create a web service with a different name than "Math", say, something like "MyMath"
      

  4.   

    To saucer(思归):不是那个原因吧,建议实验Math这个简单的Web Service可是微软的例子啊,并且我早都又建立过第二个例子,叫WebMath,结果也是一样,时好时坏,有时编译过一执行就一点问题都没有,可有时却总报错,程序还是那个程序啊,一点都没改,为何有时就行有时就总也不行呢?!
      

  5.   

    1. check the permissions on Math/bin directoryor2. remove all files from Math directory, create a file called Service.asmx, add your web service C# code into it and try to access it from a browser:
    http://localhost/Math/Service.asmx
      

  6.   

    曾经遇到过类似的问题,时好时坏,找不出原因,后来把磁盘分区由FAT32改为NTFS以后,就没有这种问题了.至今也找不出原因.一直纳闷中...
      

  7.   

    To qz4365(冷风清扬):跟硬盘分区没关系吧,我的可一直是NTFS格式的呀!难道没有其他人也遇过这种问题,并成功解决了吗?!再次求救!另外,saucer(思归) ,你提供的方法真的不起作用,我把它删掉了,然后重建一个工程,运行它,第一次运行——成功了,待再运行一次,就不行了,以后又运行几次,都跟上面的报错一样——真不知怎么这么脆弱呢?!请高手来指点到底怎么回事啊?我想上面我已经把问题说得够清楚了吧?
    还有个朋友“冷风清扬”也遇到过同样问题,难道大家都正常吗?多运行几次,看看您的Web Service是不是也这样啊?要是有能真帮我解决掉这个烦人问题的朋友,真是感激涕零啊!请教各位啦!
      

  8.   

    save the following in a file as "HelloWorld.asmx", then access it repeatedly:
    http://whatever/HelloWorld.asmx<%@ WebService Language="C#" Class="CSDNASPNET.HelloWorld" %>
    namespace CSDNASPNET
    {
      using System;
      using System.Web.Services;
      [WebService(Namespace="http://www.csdn.net/webservices/")]
      public class HelloWorld : WebService
      {
        [WebMethod(Description="Says hello.")]
        public string Hello()
        {
          return "Hello, CSDN.";
        }
      }
    }
    if you still have problems, I would suggest you re-install IIS and .NET
      

  9.   

    To saucer(思归):真谢谢啦!你提供的这个Web Serv倒是总能正常执行,它提示如下:HelloWorld支持下列操作。有关正式定义,请查看服务说明。Hello 
    Says hello. 我试了几个在VS .net的IDE下生成的Web服务程序却总是时好时坏,唉,我都绝望透了!我都刚把VS .net(包括Framework组件)和IIS重装了一遍,好费事啊,但一点起色都没有,简直让人绝望啊!还是多谢您一贯这么热心支持啊,我再研究研究就给您分,不管怎么说有时还是能运行的啊。谢谢啊!
      

  10.   

    我还找了微软在下面的一个帮助,逐项挨个调试了一遍,但一点效果都没有——
    Visual Studio   错误:“无法在 Web 服务器上启动调试”请参见
    调试脚本和 Web:错误和疑难解答
    当试图对运行在 Web 服务器上的应用程序进行调试时,有时可能会得到具有以下错误信息的消息:Unable to start debugging on the web server
    如果遇到这些错误,则需要考虑以下几个问题: 要检查的内容 
    远程服务器上的 Web 应用程序 
    存储在 Visual SourceSafe 中并使用 FrontPage 服务器扩展的 Web 应用程序 
    手动附加 
    要检查的内容
    如果得到“无法在 Web 服务器上启动调试”错误,请尝试检查下列内容: 您是否正在运行一个允许 Visual Studio 调试器自动附加到 Web 应用程序的 Windows 版本?如果不是,则需要启动应用程序而不调试,然后手动附加到它。(有关更多信息,请参阅手动附加和 ASP.NET 调试:系统要求。) 
    您的 Web 应用程序是否具有 Web.config 文件? 
    Web.config 文件是否通过将 debug 属性设置为 true 而启用了调试模式?有关更多信息,请参阅 ASP.NET 应用程序中的调试模式。 
    Web.config 是否包含任何语法错误?您可以通过运行 Web 应用程序而不调试来检查是否存在语法错误。(从“调试”菜单中,选择“开始执行(不调试)”。)如果在 Web.config 中存在语法错误,则会显示详细信息。 
    您是否是“调试器用户”(Debugger Users) 组的成员?如果您作为管理员登录,则管理员是否在该组中? 
    您是否是通过指定特定的 IP 地址(如 100.20.300.400)而创建了项目?调试 Web 服务器要求 NTLM 身份验证。默认情况下,IP 地址被假定为 Internet 的一部分,而在 Internet 上不进行 NTLM 身份验证。若要更正这一问题: 
    创建项目时,指定 Intranet 上计算机的名称。 
    -或- 将 IP 地址 (http://100.20.300.400) 添加到您的计算机上的受信任站点列表中。(从 Internet Explorer 的“工具”菜单中,选择“Internet 选项”,然后选择“安全”选项卡)。 
    运行 IIS 服务器的计算机是否已安装了 Visual Studio .NET 远程组件? 
    IIS 是否是在安装了 Visual Studio .NET 之后才被安装在本地计算机(即运行 Visual Studio .NET 的计算机)上的?IIS 应在安装 Visual Studio .NET 之前安装。如果它是后来安装的,则可能需要修复 .NET 框架。 
    修复 .NET 框架 插入 Visual Studio .NET 光盘并运行 
    <DVD Drive>:\wcu\dotNetFramework\dotnetfx.exe /t:c:\temp /c:"msiexec.exe /fvecms c:\temp\netfx.msi"
    -或- 插入 Visual Studio .NET Windows 组件更新光盘并运行 <CD Drive>:\dotNetFramework\ dotnetfx.exe /t:c:\temp /c:"msiexec.exe /fvecms c:\temp\netfx.msi"
    是否正确地指定了项目起始页的 URL?扩展名和项目目录是否正确? 
    是否正确地设置了 IIS 安全设置?若要验证这一点,请检查“默认 Web 站点”设置。 
    检查“默认 Web 站点”的 IIS 安全设置 从“开始”菜单中,依次选择“程序”和“管理工具”,然后单击“Internet 服务管理器”(Windows 2000) 或“Internet 信息服务”(Windows XP)。 
    在“Internet 服务管理器”或“Internet 信息服务”对话框中,单击您的计算机的树控件 (Tree Control)。在“Web 站点”文件夹中,找到“默认 Web 站点”。 
    右击“默认 Web 站点”并选择“属性”。 
    在“默认 Web 站点属性”窗口中,选择“目录安全性”选项卡并单击“编辑”。 
    在“身份验证方法”对话框中,选择“匿名访问”和“集成的 Windows 身份验证”(如果尚未选择的话)。 
    单击“确定”以关闭“Internet 服务管理器”或“Internet 信息服务”对话框。 
    单击“确定”。 
    对于 ATL Server 应用程序,请验证 DEBUG 谓词是否与您的 ISAPI 扩展相关联。 
    对于 ASP.NET 应用程序,请确保应用程序的虚拟文件夹具有在“Internet 服务管理器”或“Internet 信息服务”中设置的“应用程序名称”。 
    为 Web 应用程序指定虚拟文件夹 从“开始”菜单中,依次选择“程序”和“管理工具”,然后单击“Internet 服务管理器”(Windows 2000) 或“Internet 信息服务”(Windows XP)。 
    在“Internet 服务管理器”或“Internet 信息服务”对话框中,单击您的计算机的树控件 (Tree Control)。在“Web 站点”文件夹中,找到此 Web 应用程序。 
    右击“默认 Web 站点”并选择“属性”。 
    在“默认 Web 站点属性”窗口中,选择“目录”选项卡。 
    在“应用程序设置”下,单击“创建”。 
    应用程序名称即出现在此框中。 单击“确定”关闭“属性”对话框。 
    单击“确定”以关闭“Internet 服务管理器”或“Internet 信息服务”对话框。 
    远程服务器上的 Web 应用程序
    如果 Web 应用程序位于远程服务器上,请检查以下问题: 是否运行了正确的安装程序以便在服务器上安装 ASP.NET/ATL Server 和远程调试器组件? 
    您是否是服务器上的“调试器用户”(Debugger Users) 组的成员?您是否具有调试在系统帐户下运行的进程所必需的访问特权? 
    根据安全设置的不同,ASP.NET 应用程序可能在 inetinfo.exe(IIS 进程)下运行,也可能在 ASP 辅助进程 aspnet_wp.exe 下运行。默认情况下,aspnet_wp.exe 进程作为 SYSTEM 运行。若要调试在 aspnet_wp.exe 下运行的应用程序,您需要具有管理员特权或为 aspnet_wp.exe 编辑 machine.config 文件,以便 aspnet_wp.exe 在用户帐户下运行。若要调试在 inetinfo.exe 下运行的应用程序,您必须是运行 inetinfo.exe 的计算机上的管理员。 根据安全设置的不同,ATL Server 应用程序可能在 inetinfo.exe 下运行,也可能在 ATL 辅助进程 dllhost.exe 下运行。若要调试在 inetinfo.exe 下运行的应用程序,您必须是运行 inetinfo.exe 的计算机上的管理员,或者使用公共语言运行库应用程序设置将 dllhost 配置为作为特定用户运行。 
    您是否正在使用“终端服务器”尝试调试远程计算机上的 Web 应用程序?在 Windows XP 下,支持使用“终端服务器”对本机 Web 应用程序进行远程调试。而在 Windows 2000 或 Windows NT 下则不支持。 
    存储在 Visual SourceSafe 中并使用 FrontPage 服务器扩展的 Web 应用程序
    如果 Web 应用程序存储在 Visual SourceSafe 中并且使用 FrontPage 服务器扩展作为它的 Web 访问模式,请检查以下问题: Visual SourceSafe 是否与 FrontPage 服务器/Web 服务器位于同一台计算机上?如果是,则可以使用“集成身份验证”进行调试。(若要检查“集成身份验证”设置,请参阅此过程以检查前面的“默认 Web 站点”的 IIS 安全设置。) 
    解决这一问题的另一种方法是将 Web 访问模式从 FrontPage 更改为文件共享 (File Share)。 
    将 Web 访问模式更改为文件共享 (File Share) 在解决方案资源管理器中,右击项目名称,然后从快捷菜单中选择“属性”。 
    在“<Project> 属性页”对话框中,打开“通用属性”文件夹,然后选择“Web 设置”。 
    在“Web 服务器连接”下,单击“Web 访问模式”,然后从列表框中选择“文件共享”。 
    单击“确定”以关闭“<Project> 属性页”对话框。 
    手动附加
    如果按照这些疑难解答步骤执行了相应操作,而在开始调试时仍然收到错误信息,则可能需要尝试通过手动附加来调试应用程序。手动附加 启动应用程序而不调试。(从“调试”菜单中,选择“开始执行(不调试)”。) 
    附加到适当的 IIS 进程或辅助进程。默认情况下,对于 ATL Server 应用程序为 inetinfo.exe;对于 ASP.NET 应用程序为 aspnet_wp.exe。使用下面的过程来确定 ASP.NET 或 ATL Server 应用程序在哪个进程下运行。 
    检查 ASP.NET 应用程序在哪个进程下运行 使用 Visual Studio .NET 或其他文本编辑器打开应用程序的 machine.config 文件。 
    找到下面的进程模型属性: 
    enable
    如果 enable 设置为 TRUE,则应用程序在 aspnet_wp.exe 下运行(这也是默认设置。) 如果 enable 设置为 FALSE,则应用程序在 inetinfo.exe 下运行。 检查 ATL Server 应用程序在哪个进程下运行 在解决方案资源管理器中,右击项目名称,然后从快捷菜单中选择“属性”。 
    在“<Project> 属性页”对话框中,打开“Web 部署”文件夹,然后选择“常规”。 
    查看“应用程序保护”设置。 
    如果此设置为“低(IIS 进程)”,则应用程序在 inetinfo.exe 下运行。 如果此设置为“中等(池)”,则应用程序在 dllhost.exe 进程下运行(与其他放入池中的 ATL Server 应用程序相同)。 如果此设置为“高(独立)”,则应用程序在 dllhost.exe 进程下运行(与其他 ATL Server 应用程序不同)。 单击“确定”以关闭“<Project> 属性页”对话框。 
    请参见
    调试脚本和 Web:错误和疑难解答--------------------------------------------------------------------------------将文档反馈发送给 Microsoft&copy; 2002 Microsoft Corporation。保留所有权利。
      

  11.   

    唉,又都可以了。现在都行了,你说怪不怪。
    不过,可能工程名确实不能用Math,会出错的。