Comment appeler service WCF OperationContract de navigateur?
J'ai créé un WCF 4
services web et hébergé sur mon IIS 7
, j'ai donné le suivant Service URL:
à publier le site web de la section dans WCF
projet:
http://localhost:8084/service1.svc
.
Puis-je lier mon publiée web site
sur le port:4567
et Type: http
dans IIS
.
To checked it i clicked on `web site` at `IIS` and click on the browse.
It open a following page at my browser:
Cela signifie que le service web est hébergé sur IIS
. Maintenant, je veux appeler mon cas de la méthode et de retour de la sortie au navigateur. Permettez-moi de vous coller le code échantillon de Iservice.cs
et service.svc.cs
#Iservice.cs:
namespace some.decryption
{
[ServiceContract]
public interface Iservice
{
[OperationContract, WebInvoke(Method = "GET", UriTemplate = "/getdata", ResponseFormat = WebMessageFormat.Json)]
string getdata();
}}
Alors que mon service.svc.cs
:
public bool getdata()
{
return somenamespace.getfetcheddll();
}
et serviceDll.cs
:
namespace somenamespace{
internal static class UnsafeNativeMethods
{
_dllLocation = "some.dll";
[DllImport(_dllLocation, CallingConvention = CallingConvention.Cdecl)]
public static extern bool OnDecryption();
}
public static string getfetcheddll()
{
return UnsafeNativeMethods.OnDecryption();
}}
comment dois-je appeler getdata()
méthode de navigateurs?
J'ai mis le some.dll
dans le même dossier du projet. Où dois-je le faire?
Edit:
J'ai oublié de coller mon web.config
:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
Pour ce faire j'ai suivi ce blog : procédure pas à pas sur la création d'
web.config
collé à la section de code
Qui, malheureusement, ne fonctionne toujours pas montrer ce liaison est utilisé.... vous avez l'impression à l'aide de la WCF 4 points de terminaison par défaut... etes-vous ajouter des points de terminaison du service dans le code côté serveur? Si oui: merci de montrer que le code... Par défaut - HTTP est traduit en
wsHttpBinding
qui est un SAVON service --> ne peut pas être appelée à partir d'un navigateur. Le ?wsdl
suffixe sur la page d'aide semble également aller dans ce sensEssayez d'utiliser le Client Test WCF - pouvez-vous vous connecter à votre service, à l'adresse indiquée sur la page d'aide avec cet outil? Voyez-vous vos services?
J'ai simplement suivi un blog collé à la section de code. S'il vous plaît avoir un bref examen. C'est ma première
WCF
projet de serviceOriginalL'auteur Amit Pal | 2013-01-04
Vous devez vous connecter pour publier un commentaire.
Par défaut -
HTTP
est traduit enwsHttpBinding
qui est un SAVON de service, de sorte que vous ne peut pas juste de l'appeler à partir d'un navigateur. Le?wsdl
suffixe sur la page d'aide semble également aller dans ce sens.Pour les tests de SAVON services, vous avez besoin d'un SAVON capables outil comme le Microsoft Client Test WCF ou SoapUI.
Essayez d'utiliser le Client Test WCF - pouvez-vous vous connecter à votre service, à l'adresse indiquée sur la page d'aide avec cet outil? Voyez-vous vos services?
WCF Test Client
est un type de fichier exe ? Je n'ai jamais utiliseroui - c'est un distinct, autonome WCF test de l'outil. Télécharger et jouer un peu avec elle, c'est gratuit et très utile. Ou utiliser SoapUI - aussi gratuit et TRÈS utile
Que dire de la dll de la section ? où dois-je l'ai placé
cela fait partie de la service - vous devez vous assurer que votre service est fonctionnel et opérationnel, et le client Test WCF est une client application de tester le service - client pas dépendent d'une DLL qui utilise le service!
Je l'ai testé avec
WCF test client
et il fonctionne très bien avec les méthodes qui ne sont pas à l'aide de dll, mais avec eux, il affiche une erreurOriginalL'auteur marc_s