
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”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)