Jag har skapat en webservice som har en referens till en dll. I machine.config är det instället att en webbservice inte tillåter http-post och http-get. Ta bort den markeringen så kommer det fungera. tyvär värkar inte funka.Inga felmedelande men det händer inget med min service. Att operera andra program så via en webservices får mig att tro att du har problem med rättigheterna, speciellt om det fungerar när du gör innefrån VS. ta bort rem för dessa två.. Hur ställer jag in det?Har satt till ALLA skall ha rättigheter till dll:en. Det jag syftar på ställer du in i IIS Admin modul. Om jag inte har fel för mig så körs en ASP.NET (på iis 6) under 2 olika konto IUSR_<<MachineName>> och Network Services. Kommer inte ihåg exakt hur det var, men Network Services har väldigt begränsade rättigheter, och kanske inte har rättigheter att läsa din .dll även om du ställer in att Everyone skall kunna accessa den. Har kommet en bit på vägen ändra användare och fick då access denie.Eller "Orskat kan var ett tomt lösenord".Vilket innebär att IIS har rättigheter till filen.Kör jag med IUSR_EHELEN så får jag inte dom felen. Tusen tack för era små ledtrådar som lede fram till min lösning. Jag skulle nog föreslå att du kör impersonation istället; dvs. loggar in med "rätt" konto helt temporärt medan du anropar dll:en. jag provade med: Alltså: Jag tänkte att du skulle anropa winamp ifrån asp.net, inte starta winamp. Nu vet jag iofs. inte hur winamps api fungerar... måste starta winamp för att kunna köra dll:en som skickar komando till winamp. Jag sitter och har exakt samma problem som ovan med att Impersonator vägrar funka när den körs via en iis :-( Webservice funkar i VS express men inte i IIS
Jag gör en websida som kallar på webservicen i VS så funkar det fint.Men köra jag det via http://localhost i IIS funkar det inte.Man ser sidan men inget händer.Inga felmedelanden.Hat testat med Try Catch men händer iget.
Jag har get IIS-kontot rättigheter till dll filen.
Någon som har någon ide?Sv: Webservice funkar i VS express men inte i IIS
Sv:Webservice funkar i VS express men inte i IIS
Den dllen jag kör mot är WinampFrontEndLib.dll som gör att man kan kontrolera Winamp.Det är .Net dll.
skrivet detta:
<code>
</roleManager>
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpSoap"/>
<!-- <add name="HttpPost"/> -->
<!-- <add name="HttpGet"/> -->
<add name="HttpPostLocalhost" />
<add name="Documentation"/>
</protocols>
<soapExtensionTypes>
</soapExtensionTypes>
<soapExtensionReflectorTypes>
</soapExtensionReflectorTypes>
<soapExtensionImporterTypes>
</soapExtensionImporterTypes>
<wsdlHelpGenerator href="DefaultWsdlHelpGenerator.aspx" />
<serviceDescriptionFormatExtensionTypes>
</serviceDescriptionFormatExtensionTypes>
</webServices>
</system.web>
</configuration>
</code>Sv: Webservice funkar i VS express men inte i IIS
Detta eftersom den default användare som finns i IIS:en knappast har de rättigheter som du önskar för accessa winamp...
Det första du bör göra är se till så att du sätter:
<authentication mode="Windows"/>
<identity impersonate="true"/>
i din web.config
sedan så sätter du ATT Anonumys user skall vara ditt användar konto när någon surfar till webservicen. Om det fungerar så har IIS:en problem med rättigheterna när den skall kalla på din winamp-dll.
- MSv:Webservice funkar i VS express men inte i IIS
<!-- <add name="HttpPost"/> -->
<!-- <add name="HttpGet"/> -->
men som magnus säger, kan också vara någon form av rättigheter Sv:Webservice funkar i VS express men inte i IIS
Sv: Webservice funkar i VS express men inte i IIS
Så testa att köra din website som en impersonated user, ta då ditt eget konto så ser du om det är fel hos IIS, för det bör fungerar så fall.
- MSv:Webservice funkar i VS express men inte i IIS
Sv: Webservice funkar i VS express men inte i IIS
Skall lägga upp mitt lilla project som en artikel sen.
Jag löste det.Värkar var så att winamp.dll skapa en handel till Winamp.Men eftersom JAG startar den är det inte samma användare som kör winamp.Eller det finns ingen handel till den Winamp som skappas av webservicen.
Det jag gjorde var att låta webservicen köra en System.Diagnostics.Process på winamp.På så sätt, är det samma användare(aspnet) som kör winamp.
Har dock ett litet problem eftersom den ligger i konstruktorn så skapas en ny instans av winamp varje gång.Hur kollar man om en prosses körs?Sv:Webservice funkar i VS express men inte i IIS
http://www.codeproject.com/csharp/zetaimpersonator.aspSv: Webservice funkar i VS express men inte i IIS
<code>
public Service()
{
// Impersonate, automatically release the impersonation.
using (new Impersonator("Ehel", "ehelen", "xxxxx"))
{
// The following code is executed under the impersonated user.
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"C:\Program\Winamp\winamp.exe";
p.Start();
}
}
</code>
Men winamp körs ändå av ASPNET.Sv:Webservice funkar i VS express men inte i IIS
Sv: Webservice funkar i VS express men inte i IIS
Så det du gav exempel på är det settet jag måste starta på annars syns inte winamp på skärmen.
Lite jobbig om då jag vill kunna byta filmer via webgränsnittet.
Men den koden över värkar inte funka.Kollar man i akitivetetshanteraren så körs Winamp av ASPNET och inte Ehel som jag skickar med.
Kan man göra något med System.Diagnostics.Process för att starta med en annan användare?Sv:Webservice funkar i VS express men inte i IIS
Någon som har fått det att funka... ev med någon fulinglösning på webserversidan?