.net – 访问IIS 7.0上的.asmx页面时,“无法创建类型XXXX”

.net – 访问IIS 7.0上的.asmx页面时,“无法创建类型XXXX”,第1张

概述当我尝试访问我的Web浏览器上的.asmx文件时,我有这个错误消息.消息如下: Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and m 当我尝试访问我的Web浏览器上的.asmx文件时,我有这个错误消息.消息如下:

Description: An error occurred during the parsing of a resource required to service this request. Please revIEw the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not create type ‘GeocachingServerNS.GeocachingServer’.

Source Error:

line 1: <%@ WebService Language=”C#” CodeBehind=”GeocachingServer.asmx.cs” Class=”GeocachingServerNS.GeocachingServer” %>

这是我的代码:

using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Collections.Generic;@R_404_6889@space GeocachingServerNS{    public class PlayerInfo    {        public string player@R_404_6889@;        public position position;        public PlayerInfo()        {        }        public PlayerInfo(string player@R_404_6889@,position position)        {            this.player@R_404_6889@ = player@R_404_6889@;            this.position = position;        }    }    public class CacheInfo    {        public string cache@R_404_6889@;        public string creator@R_404_6889@;        public int ID;        public position position;        public string hint;        public string code;        public CacheInfo()        {        }        public CacheInfo(string cache@R_404_6889@,string creator@R_404_6889@,int ID,position position,string hint,string code)        {            this.cache@R_404_6889@ = cache@R_404_6889@;            this.creator@R_404_6889@ = creator@R_404_6889@;            this.ID = ID;            this.position = position;            this.hint = hint;            this.code = code;        }    }    public class position    {        public double latitude;        public double longitude;        public position()        {        }    }    public class Message    {        public string sender;        public string content;        public Message()        {        }    }    [WebService(@R_404_6889@space = "http://ift604.usherbrooke.ca/",@R_404_6889@ = "GeocachingServer")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [ToolBoxItem(false)]    public class GeocachingServer : System.Web.Services.WebService    {        public static int m_IDCounter = 0;        public static List<CacheInfo> m_cacheInfos = new List<CacheInfo>();        public static List<PlayerInfo> m_playerInfos = new List<PlayerInfo>();        public static Dictionary<CacheInfo,List<Message>> m_cacheComments = new Dictionary<CacheInfo,List<Message>>();        public static Dictionary<string,List<Message>> m_mailBoxes = new Dictionary<string,List<Message>>();        /// <summary>        /// Registers a new cache into the geocaching server.        /// The cache will be visible to players.        /// </summary>        /// <param @R_404_6889@="cache@R_404_6889@"></param>        /// <param @R_404_6889@="creator@R_404_6889@"></param>        /// <param @R_404_6889@="position"></param>        /// <param @R_404_6889@="hint"></param>        [WebMethod]        public voID RegisterCache(string cache@R_404_6889@,string code)        {            CacheInfo cacheInfo = new CacheInfo(cache@R_404_6889@,creator@R_404_6889@,m_IDCounter,position,hint,code);            m_cacheInfos.Add(cacheInfo);            m_cacheComments[cacheInfo] = new List<Message>();            ++m_IDCounter;        }        /// <summary>        /// Sends (updates) the position of a player to the geocaching server.        /// </summary>        /// <param @R_404_6889@="position"></param>        /// <param @R_404_6889@="player@R_404_6889@"></param>        [WebMethod]        public voID Sendposition(position position,string player@R_404_6889@)        {            PlayerInfo playerInfo = Findplayer(player@R_404_6889@);            if (playerInfo == null)            {                //Todo: Est-ce la meilleure façon de procéder,d'un point de vue                //sécurité (flooding)? Non.                m_playerInfos.Add(new PlayerInfo(player@R_404_6889@,position));            }            else            {                playerInfo.position = position;            }        }        /// <summary>        /// Removes a player from the geocaching game.        /// </summary>        /// <param @R_404_6889@="player@R_404_6889@"></param>        [WebMethod]        public voID disconnect(string player@R_404_6889@)        {            PlayerInfo playerInfo = Findplayer(player@R_404_6889@);            m_playerInfos.Remove(playerInfo);   //Fonctionne aussi avec null.        }        /// <summary>        /// Returns positions of players nearby.        /// </summary>        /// <param @R_404_6889@="player@R_404_6889@">The player that requests the positions.</param>        /// <returns></returns>        [WebMethod]        public List<PlayerInfo> GetPlayerpositions(String player@R_404_6889@)        {            //Todo: Retourner la position des joueurs qui sont près du joueur...            return m_playerInfos;        }        /// <summary>        /// Returns the List of all caches that exists in the server.        /// </summary>        /// <returns></returns>        [WebMethod]        public List<CacheInfo> GetCacheList()        {            return m_cacheInfos;        }        /// <summary>        /// Returns all comments related to a cache.        /// </summary>        /// <param @R_404_6889@="cacheID"></param>        /// <returns></returns>        [WebMethod]        public List<Message> GetComments(int cacheID)        {            List<Message> comments = new List<Message>();            CacheInfo cacheInfo = FindCache(cacheID);            if (cacheInfo != null)            {                comments = m_cacheComments[cacheInfo];            }            return comments;        }        /// <summary>        /// Sends a contragulations message to the creator        /// of a cache.        /// </summary>        /// <param @R_404_6889@="message"></param>        /// <param @R_404_6889@="cacheID"></param>        [WebMethod]        public voID SendMessage(Message message,int cacheID)        {            CacheInfo cacheInfo = FindCache(cacheID);            if (!m_mailBoxes.ContainsKey(cacheInfo.creator@R_404_6889@))            {                m_mailBoxes[cacheInfo.creator@R_404_6889@] = new List<Message>();            }            m_mailBoxes[cacheInfo.creator@R_404_6889@].Add(message);        }        /// <summary>        /// Returns all messages sent to a player (like        /// congratulations messages).        /// </summary>        /// <param @R_404_6889@="player@R_404_6889@"></param>        /// <returns></returns>        [WebMethod]        public List<Message> GetMessages(String player@R_404_6889@)        {            if (!m_mailBoxes.ContainsKey(player@R_404_6889@))            {                m_mailBoxes[player@R_404_6889@] = new List<Message>();            }            return m_mailBoxes[player@R_404_6889@];        }        /// <summary>        /// Adds a comment to a cache.        /// </summary>        /// <param @R_404_6889@="message"></param>        /// <param @R_404_6889@="cacheID"></param>        [WebMethod]        public voID AddComment(Message message,int cacheID)        {            CacheInfo cacheInfo = FindCache(cacheID);            if (cacheInfo != null)            {                m_cacheComments[cacheInfo].Add(message);            }        }        private PlayerInfo Findplayer(string player@R_404_6889@)        {            foreach (PlayerInfo info in m_playerInfos)            {                if (info.player@R_404_6889@ == player@R_404_6889@)                {                    return info;                }            }            return null;        }        private CacheInfo FindCache(int ID)        {            foreach (CacheInfo info in m_cacheInfos)            {                if (info.ID == ID)                {                    return info;                }            }            return null;        }    }}

我在IIS管理器上的“默认网站”上创建了一个虚拟文件夹.我使用IIS 7.0和windows Server 2008.

我看了十分之一的论坛,他们都说这些话:

>可能有IIS 7.0的东西
> .asmx文件中的class属性的命名空间不是很好(在我的例子中)
>如果包含Web服务的类名称为Service,则可能无法正常工作(错误)
> .asmx文件的构建动作必须是Content(就是).
> .asmx.cs文件的构建动作必须是编译(它是).
>代码必须在“虚拟目录”中的App_Code目录中,而.asmx文件必须在CodeBehind属性中包含正确的文件(我已尝试过,但没有起作用).

这是目录结构

- App_Data- bin   - GeocachingServer.asmx   - GeocachingServer.asmx.cs   - GeocachingServer.dll   - GeocachingServer.pdb- obj   - DeBUG       - Refactor       - TempPE       - GeocachingServer.dll       - GeocachingServer.pdb       - Server.csproj.fileListabsolute.txt- PropertIEs   - AssemblyInfo.cs- Example09ServiceWeb.Publish.xml- GeocachingServer.asmx- GeocachingServer.asmx.cs- Server.csproj- Server.csproj.user- Server.Publish.xml- Web.config- x.HTML (if I ask this file when specifying the URL,it works)

这是我的web.config文件:

<?xml version="1.0"?><configuration>    <configSections>        <sectionGroup @R_404_6889@="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup,System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35">            <sectionGroup @R_404_6889@="scripting" type="System.Web.Configuration.ScriptingSectionGroup,PublicKeyToken=31BF3856AD364E35">                <section @R_404_6889@="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDeFinition="MachinetoApplication"/>                <sectionGroup @R_404_6889@="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup,PublicKeyToken=31BF3856AD364E35">                    <section @R_404_6889@="JsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDeFinition="Everywhere"/>                    <section @R_404_6889@="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDeFinition="MachinetoApplication"/>                    <section @R_404_6889@="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDeFinition="MachinetoApplication"/>                    <section @R_404_6889@="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDeFinition="MachinetoApplication"/></sectionGroup></sectionGroup></sectionGroup></configSections><appSettings/>    <connectionStrings/>    <system.web>        <!--             Définissez compilation deBUG="true" pour insérer des symboles             de débogage dans la page compilée. Comme ceci             affecte les performances,définissez cette valeur à true uniquement             lors du développement.        -->        <customErrors mode="Off"/>        <compilation deBUG="true">            <assemblIEs>                <add assembly="System.Core,PublicKeyToken=B77A5C561934E089"/>                <add assembly="System.Web.Extensions,PublicKeyToken=31BF3856AD364E35"/>                <add assembly="System.Xml.linq,PublicKeyToken=B77A5C561934E089"/>                <add assembly="System.Data.DataSetExtensions,PublicKeyToken=B77A5C561934E089"/></assemblIEs></compilation>        <!--            La section <authentication> permet la configuration             du mode d'authentification de sécurité utilisé par             ASP.NET pour IDentifIEr un utilisateur entrant.         -->        <!--authentication mode="windows"/>    -->        <!--            La section <customErrors> permet de configurer             les actions à exécuter si/quand une erreur non gérée se produit             lors de l'exécution d'une demande. Plus précisément,elle permet aux développeurs de configurer les pages d'erreur HTML             pour qu'elles s'affichent à la place d'une trace de la pile d'erreur.        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">            <error statusCode="403" redirect="NoAccess.htm" />            <error statusCode="404" redirect="fileNotFound.htm" />        </customErrors>        -->        <pages>            <controls>                <add tagPrefix="asp" @R_404_6889@space="System.Web.UI" assembly="System.Web.Extensions,PublicKeyToken=31BF3856AD364E35"/>                <add tagPrefix="asp" @R_404_6889@space="System.Web.UI.WebControls" assembly="System.Web.Extensions,PublicKeyToken=31BF3856AD364E35"/></controls></pages>        <httpHandlers>            <remove verb="*" path="*.asmx"/>            <add verb="*" path="*.asmx" valIDate="false" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31BF3856AD364E35"/>            <add verb="*" path="*_AppService.axd" valIDate="false" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31BF3856AD364E35"/>            <add verb="GET,head" path="ScriptResource.axd" valIDate="false" type="System.Web.Handlers.ScriptResourceHandler,PublicKeyToken=31BF3856AD364E35"/></httpHandlers>        <httpModules>            <add @R_404_6889@="ScriptModule" type="System.Web.Handlers.ScriptModule,PublicKeyToken=31BF3856AD364E35"/></httpModules></system.web>    <system.codedom>            <compilers>                <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvIDer,System,Version=2.0.0.0,PublicKeyToken=b77a5c561934e089" warningLevel="4">                    <provIDerOption @R_404_6889@="CompilerVersion" value="v3.5"/>                    <provIDerOption @R_404_6889@="WarnAsError" value="false"/></compiler></compilers></system.codedom>    <!--         La section system.webServer est requise pour exécuter ASP.NET AJAX sur Internet        information Services 7.0.  Elle n'est pas nécessaire pour les versions précédentes d'IIS.    -->    <system.webServer>            <valIDation valIDateIntegratedModeConfiguration="false"/>        <modules>            <remove @R_404_6889@="ScriptModule"/>            <add @R_404_6889@="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule,PublicKeyToken=31BF3856AD364E35"/></modules>        <handlers>            <remove @R_404_6889@="WebServiceHandlerFactory-Integrated"/>            <remove @R_404_6889@="ScriptHandlerFactory"/>            <remove @R_404_6889@="ScriptHandlerFactoryAppServices"/>            <remove @R_404_6889@="ScriptResource"/>            <add @R_404_6889@="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31BF3856AD364E35"/>            <add @R_404_6889@="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31BF3856AD364E35"/>            <add @R_404_6889@="ScriptResource" verb="GET,head" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler,PublicKeyToken=31BF3856AD364E35"/></handlers></system.webServer>    <startup><supportedRuntime version="v2.0.50727"/></startup>    <runtime>        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">            <dependentAssembly>                <assemblyIDentity @R_404_6889@="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly>            <dependentAssembly>                <assemblyIDentity @R_404_6889@="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly></assemblyBinding></runtime></configuration>

经过六个小时的调试,我没有找到我的问题的解决方案.请帮忙!

解决方法 如果您使用的是网站项目,那么您应该将代码隐藏GeocachingServer.asmx.cs到〜/ App_Code /目录中,并指向.asmx中的该路径

如果没有工作,您忘记右键单击虚拟目录,然后选择转换为应用程序.

虽然您应该首先在该文件夹上创建一个application,而不是使其成为虚拟目录.您应该在创建应用程序时单击添加应用程序.

总结

以上是内存溢出为你收集整理的.net – 访问IIS 7.0上的.asmx页面时,“无法创建类型XXXX”全部内容,希望文章能够帮你解决.net – 访问IIS 7.0上的.asmx页面时,“无法创建类型XXXX”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1099257.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存