J'ai créé un webservice et l'ai publié sur une machine locale. Ensuite, je l'ai téléchargé sur le serveur.
Maintenant, pendant que j'essayais d'accéder au webservice, cela donne l'erreur suivante:
Parser Error Message: Could not create type 'webservice.myservice'
Source Error: Line 1: <%@ WebService Language="C#" CodeBehind="myservice.asmx.cs" Class="webservice.myservice" %>
J'ai essayé This link mais impossible de résoudre mon problème.
Que devrais-je faire?
Je ne sais pas si cela traîne quelque chose du passé sombre et lointain .. mais j'ai eu ce problème .. l'a résolu .. donc j'ai pensé que je partagerais
Lorsque vous créez un service Web dans Visual Studio (j'utilise 2010 mais j'imagine que c'est la même chose pour les autres), il crée un fichier appelé Service1.asmx
Vous serez tenté de le renommer en MyService.asmx
(ou peu importe)
Ensuite, vous regarderez à l'intérieur et verrez la ligne
public class Service1: System.Web.Services.WebService
que vous changerez en
public class MyService: System.Web.Services.WebService
puis lorsque vous essayez de l'exécuter, vous obtenez l'erreur
Impossible de créer le type 'MyProject.MyService'
car il pense toujours que la classe s'appelle Service1 ..
si vous faites un clic droit sur le .asmx
fichier et sélectionnez le balisage de vue, vous verrez qu'il dit toujours
<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="MyProject.Service1" %>
le changer en
<%@ WebService Language="C#" CodeBehind="MyService.asmx.cs" Class="MyProject.MyService" %>
enregistrez-le .. essayez-le ..
travaillé pour moi ..
J'ai eu le même problème et je l'ai cherché longtemps!
J'ai essayé beaucoup de choses, notamment les suivantes:
Aucun de ceux-là ne travaillait pour moi. Après quelques recherches, tests et jurons, j'ai finalement trouvé le problème: L'application (webservice) n'était pas correctement hébergée.
Permettez-moi d'expliquer avec un peu de contexte:
J'avais un projet contenant deux solutions: une solution était le site web que j'avais réalisé (html, javascript, etc.), l'autre solution contenait un dossier avec la logique métier, le modèle de base de données et les webservices. Évidemment, le dossier webservices contenait mes fichiers .asmx et le code-behind pour eux.
Je les hébergeais de la manière suivante:
Plus visuellement:
Cela a entraîné l'URL suivante " http: //website/webservices/myWebservice.asmx ", qui m'a donné l'erreur "Impossible de créer le type".
Maintenant, après avoir joué un peu, j'ai essayé d'héberger mon application de service Web en commençant par le noyau de données en tant que root, au lieu du dossier Webservice.
Visuellement:
Évidemment, utiliser la même URL que précédemment me donnerait une erreur "Fichier introuvable". Cependant, en utilisant l'url suivante " http: //website/webservices/webservices/myWebservice.asmx ", j'ai finalement réussi à faire fonctionner mon page des services web!
Une petite panne d'URL:
Je suppose que parce que j'hébergeais mes webservices directement depuis le dossier "webservices" dans le Data Core, le serveur n'a pas pu trouver le DLL DLL des webservices compilé (qui réside dans le "bin") dossier), puisque j'hébergeais à un niveau plus profond.
Après avoir modifié la configuration et hébergé les services Web à partir du dossier "Data Core", le serveur IIS pourrait "voir" le dossier bin et héberger les services Web avec succès. Lorsque vous utilisez l'URL correcte qui est ^ _ ^
J'espère que cela est clair et vous aide à résoudre vos problèmes!
Une autre chose qui peut causer le problème. Ne crée pas d'application pour le projet, lancez le IIS lui-même.
Démarrer -> Rechercher IIS
Ouvrez-le !!
Cliquez avec le bouton droit sur le site Web par défaut ou le site Web sur lequel vous prévoyez de publier le service.
Ajouter une application ... Entrez un alias ex. "MyWebService" ... Choisissez le chemin physique. dans mon cas était C:\inetpub\wwwroot\MyWebService
qui est le chemin par défaut de mon site Web.
Ensuite, lorsque vous publiez, jetez Visual Studio, choisissez ce dossier. ou copiez-y simplement vos fichiers de code.
J'avais ce problème ce matin et Google m'a atterri ici, mais aucune de ces réponses n'a fonctionné pour moi. Mais j'ai compris ce qui n'allait pas - du moins dans mon cas - alors j'ai pensé le partager au cas où cela aiderait les autres.
J'avais un service Web qui fonctionnait bien depuis des mois dans une solution avec d'autres parties de l'application sur laquelle je travaillais. Hier, j'avais besoin de corriger quelque chose dans une branche de publication, j'ai donc ouvert Visual Studio sur une copie de la solution dans un autre répertoire. Visual Studio a décidé d'être utile et de remapper silencieusement tous mes répertoires virtuels dans IIS à l'endroit où les programmes seraient dans le dossier de publication (si j'avais pris la peine de les construire, ce que je n'avais pas)). Maintenant, quand j'ai essayé de frapper mon service Web, IIS pointait vers la version finale qui avait le dossier asmx mais pas de dossier bin.
Ouvrir l'onglet des propriétés Web dans ma solution de développement et cliquer sur Créer un répertoire virtuel l'a remappé à la version de développement et tout allait bien à nouveau avec le monde.
Je suis assez certain que ce n'est qu'un résumé de ce que Glenn a dit, mais j'ai rencontré ce problème parce que mon application a été créée à partir du répertoire un niveau trop haut dans la structure du répertoire.
Par exemple, mon service Web se trouvait dans SiteProject_1/SiteProject_2/service.asmx
À l'origine, SiteProject_1 était ce que j'avais converti en application dans IIS. J'ai pu résoudre le problème en supprimant cette application dans IIS et en faisant plutôt SiteProject_2 dans l'application.