locked
Client Access Policy im IIS7 keine Reaktion RRS feed

  • Frage

  • Hallo,

    was muss ich noch im IIS7 einstellen, das ich eine email von meiner HP senden kann.

    Im Localhost hat es geklappt, aber im IIS7 nicht, in der Client Access Policy  sind sternchen sollen diese bleiben

    ?xml version="1.0" encoding="utf-8" ?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from http-request-headers="*">
            <domain uri="*" />
          </allow-from>
          <grant-to>
            <resource path="/" include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>
    
    

    Wie gesagt vom localhost hat es geklappt, aber nicht im IIS 7


    Danke


    • Bearbeitet Bergfeuer Dienstag, 13. September 2011 16:01
    Sonntag, 11. September 2011 18:06

Alle Antworten

  • Hi,

    dann fehlt dir ggfs. noch die crossdomain.xml. Siehe dazu auch:

      http://dotnet-redzone.blogspot.com/2010/04/cross-domain-calls-for-silverlight.html

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 11. September 2011 18:21
  • hallo,

    hab jetzt ohne was zu verändern die

    crossdomain (ohne was zu verändern):

     

    <?xml version="1.0" encoding="utf-8" ?>
    
    
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
      <allow-http-request-headers-from domain="*" headers="*"/>
    </cross-domain-policy>
    
    

    eingefügt

     

    die clientaccesspolicy sieht so bei mir aus:

    <?xml version="1.0" encoding="utf-8" ?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from http-request-headers="*">
            <domain uri="*" />
          </allow-from>
          <grant-to>
            <resource path="/" include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>
    
    

    fidler zeigt bei der hp im web auch nichts an..

    muss ich da nicht noch was wegen berechtigung im IIS einstellen???

    Danke für die hilfe


    • Bearbeitet Bergfeuer Montag, 12. September 2011 14:47
    Montag, 12. September 2011 14:47
  • füge ich die zwei fateien einfach nur zu, oder muss ich einen service schreiben, wenn ja wie sieht der aus, wie sprech ich den über den button dann an...

    danke

    Montag, 12. September 2011 15:23
  • HEUL - ich bekomme es nicht hin. auch im internet finde ich niergends ein beispiel..

    die beiden dateien sind inhalt und kopieren wenn neuer..

     

    muss was in den service rein damit die dateien angesprochen werden, muss ich was im IIS verändern..

    bin echt fast am verzweifeln....

    Dienstag, 13. September 2011 09:20
  • Hi,

    poste doch zuerst mal die genaue und vollständige Fehlermeldung. Vorher ist das eh nur Rätselraten.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 13. September 2011 09:55
  • Hallo,

    auf dem localhost habe ich keinen fehler, da funktioniert es.

    auf der hp im internet passiert rein garnichts, nichtmal eine fehlermeldung...

     

    ich sehe es auch durch fiddler, keine reaktion...

    Dienstag, 13. September 2011 10:12
  • wie werden die zwei dateien in den builvorgang eingeschlossen Inhalt/kopieren wenn neuer??
    Dienstag, 13. September 2011 12:15
  • der hate das gleiche problem

    http://forums.silverlight.net/t/93132.aspx

    Dienstag, 13. September 2011 12:30
  • habe jetzt sowas gefunden

     <OperationContract(), WebGet(UriTemplate:="/clientaccesspolicy.xml">
    
        Public Sub SendMail(ByVal emailTo As String, ByVal emailFrom As String, ByVal messageSubject As String, ByVal messageBody As String)
    
            Dim message As New MailMessage()
            message.From = New MailAddress(emailFrom)
            message.[To].Add(New MailAddress(emailTo))
            message.Subject = messageSubject
            message.Body = messageBody
            message.IsBodyHtml = True
    

    Aber ich weiß nicht wie ich das weiter mach muss, irgendwei kommt da nich ne funktion rein..

    Hilfe...!!

    Dienstag, 13. September 2011 14:12
  • Ich hab mir für die ClientAccessPolicy.xml einen eigenen CrossDomainService geschrieben (da wir das mehrfach benötigen), welcher dann in einem Dienst bzw. Konsolenapplikation gehostet wird und die Datei bei Anfrage zurück gibt.

    Das Interface:

     

      [ServiceContract]
      public interface ICrossDomainService
      {
        [OperationContract]
        [WebGet(UriTemplate = "ClientAccessPolicy.xml")]
        Message ProvidePolicyFile();
      }
    

    die Implementierung dazu:

      [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
      public class CrossDomainService : ICrossDomainService
      {
        private string fPolicy;
    
        public CrossDomainService(string policy)
        {
          fPolicy = policy;
        }
    
        internal static ServiceHost Create(string baseAddress, string policy)
        {
          // Existiert die ClientAccess-Policy?
          if (File.Exists(policy) == false)
          {
            throw new FileNotFoundException(SR.ErrorPolicyNotFound, policy);
          }
    
          // ServiceHost erzeugen
          ServiceHost crossDomainServiceHost = new ServiceHost(new CrossDomainService(policy), new Uri[] { new Uri(baseAddress) });
    
          // Endpoint erzeugen
          ServiceEndpoint endpointCrossDomainService = crossDomainServiceHost.AddServiceEndpoint(typeof(ICrossDomainService), new WebHttpBinding(), baseAddress);
          endpointCrossDomainService.Behaviors.Add(new WebHttpBehavior());
    
          return crossDomainServiceHost;
    
        }
    
        #region ICrossDomainService Member
    
        public Message ProvidePolicyFile()
        {
          // Die ClientAccessPolicy.xml zurückgeben
           XmlReader reader = XmlReader.Create(fPolicy);
          return Message.CreateMessage(MessageVersion.None, "", reader);
        }
    
        #endregion   
      }
    

     


    und hier das Beispiel zum Erzeugen des ServiceHost in einer Konsolenapplikation oder ähnlichem:

     

    ServiceHost crossDomainServiceHost = CrossDomainService.Create("http://localhost:8010/", @"c:\pfad\ClientAccessPolicy.xml");
    crossDomainServiceHost.Open();
    

    hoffe ich hab alles drin und nichts vergessen, in der Config brauchst dann noch glaub ich das HttpBinding... (c;



    • Bearbeitet Jo0815 Mittwoch, 21. September 2011 07:17
    Freitag, 16. September 2011 10:56
  • Einen Policy Server gibt's bei Codeplex fertig, falls das was hilft: http://policyserver.codeplex.com/

     

    Daniel


    http://www.silverlight-community.de - deutsche Community mit Tutorials, Blogs und Usergroups
    Freitag, 16. September 2011 18:19