locked
Button für Email keine Reaktion RRS feed

  • Frage

  • Hallo,

    ich habe eine email funktion in meiner hp, und ein crossdoamain.xml auf wwwroot gelegt, mit clientaccess polic hab ich es auch probiert. wenn ich die anwendung auf den IIS schiebe, bewirkt der sende button garnichts, nichmal eine fehlermeldung.. auch über fiddler ist nichts zu erkennen. bin an dem poblem schon ewig dran. muss ich für den IIS im WebConfig irgend einen Endpunkt setzen, wenn ja wie sieht der aus.

    auf localhost läuft es...

    habe schon client und cross zusammen in wwwroot gehabt, dann neu jeweils eins..

    ich bin echt am verzweifeln???


    • Bearbeitet Bergfeuer Dienstag, 13. September 2011 17:00
    Dienstag, 13. September 2011 16:59

Antworten

  • Bist du sicher, dass der Service im IIS aufgerufen wird?
    Ich würde das unter Umständen mal loggen...

    Hast du die Adresse des Dienstverweises in der Service.config des SL Projektes an die neue IP oder Domain angepasst?

    Dienstag, 13. September 2011 18:32
    Beantworter

Alle Antworten

  • Poste dochmal den Code...
    Dienstag, 13. September 2011 17:17
    Beantworter
  • Im WebConfig:

    <configuration>
        <system.web>
            <authentication mode="Forms" />
            <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies></compilation>
        </system.web>
    
    <connectionStrings><add name="Model1Container" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XY\XY;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /></connectionStrings><system.serviceModel>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="">
                        <serviceMetadata httpGetEnabled="true" />
                        <serviceDebug includeExceptionDetailInFaults="false" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <bindings>
                <customBinding>
                    <binding name="xy_.Web.Service1.customBinding0">
                        <binaryMessageEncoding />
                        <httpTransport />
                    </binding>
                    <binding name="xy_.Web.EmailService1.customBinding0">
                        <binaryMessageEncoding />
                        <httpTransport />
                    </binding>
                    <binding name="xy_.Web.Service2.customBinding0">
                        <binaryMessageEncoding />
                        <httpTransport />
                    </binding>
                </customBinding>
            </bindings>
            <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
                multipleSiteBindingsEnabled="true" />
            <services>
                <service name="xy_.Web.Service1">
                    <endpoint address="" binding="customBinding" bindingConfiguration="xy_.Web.Service1.customBinding0"
                        contract="xy_.Web.Service1" />
                    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                </service>
                <service name="xy_.Web.EmailService1">
                    <endpoint address="" binding="customBinding" bindingConfiguration="xy_.Web.EmailService1.customBinding0"
                        contract="xy_.Web.EmailService1" />
                    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                </service>
                <service name="xy_.Web.Service2">
                    <endpoint address="" binding="customBinding" bindingConfiguration="xy_.Web.Service2.customBinding0"
                        contract="xy_.Web.Service2" />
                    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                </service>
            </services>
        </system.serviceModel>
    </configuration>
    
    

    Im Service

    <ServiceContract(Namespace:="")>
    <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
    Public Class Service2
    
        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
            'Try
            Dim smtp As New SmtpClient()
            smtp.Host = "smtp.xy.de"
            ' Ersetzen mit der IP-Adresse vom E-Mail Server
            smtp.Port = 25
            smtp.EnableSsl = False
            smtp.Send(message)
    

    in der Silverlightpage

     

      Dim Email As New ServiceReference1.Service2Client
    
    Email.SendMailAsync("xy@xy.de", TextBox1.Text, "xy", TextBox2.Text)

    zudem im IIS7

    <?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>
    
    

    und

    <?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>
    

    Beide als Dateu im wwwroot...

    Danke für die Hilfe und Mühe mit mir!

     

     

     

    Dienstag, 13. September 2011 18:02
  • Bist du sicher, dass der Service im IIS aufgerufen wird?
    Ich würde das unter Umständen mal loggen...

    Hast du die Adresse des Dienstverweises in der Service.config des SL Projektes an die neue IP oder Domain angepasst?

    Dienstag, 13. September 2011 18:32
    Beantworter
  • Hallo Marco,

    danke das zweite war es, habe jetzt die domain eingefügt und hab jetzt eine reaktion ;DDD aber leider mit fehler 405 ;(.

    von der clientaccesspolicy oder cross domain ist im fidel nich zu sehen...

    die beiden datein sollte ja inhalt sein und kopieren wenn neuer, oder?

    danke für deine wervolle hilfe!!!


    • Bearbeitet Bergfeuer Mittwoch, 14. September 2011 00:25
    Dienstag, 13. September 2011 22:58
  • oder müssen die inden clientbin ordner??
    Mittwoch, 14. September 2011 00:30
  • welche domain muss in die servicereferences.clientconfig die von der HP oder vom email server also smtp. ??

    viele grüße

    Mittwoch, 14. September 2011 09:07
  • so habe einen kleinen fehler gefunden, durch das rum testen hab ich <operation contract> weggelöscht.

    im serviceconfig hab ich mein HP adresse drin, im fiedler sehe ich das der smtp.XY.de angesprochen wird im fiedler sieht das so aus

    404    smtp.xy.de    /clientaccesspolicy  315  text/html;charset=us-ascii

    404    smtp.xy.de    /crossdomain         315 text/html;charset=us-ascii

     

    warum jetzt immer noch 404???

    Mittwoch, 14. September 2011 09:49
  • nach dem ich jetzt zum testen die sevice config auf localhost umgestellt habe, geht nichts mehr...

    onfiguration>
        <system.serviceModel>
            <bindings>
                <customBinding>
                    <binding name="CustomBinding_Service2">
                        <binaryMessageEncoding />
                        <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
                    </binding>
                </customBinding>
            </bindings>
            <client>
                <endpoint address="http://localhost/Service2.svc " binding="customBinding"
                    bindingConfiguration="CustomBinding_Service2" contract="ServiceReference1.Service2"
                    name="CustomBinding_Service2" />
            </client>
        </system.serviceModel>
    </configuration>
    <!---->
    

    fehler meldung

    System.ServiceModel.CommunicationException wurde nicht von Benutzercode behandelt.
      Message=Fehler beim Senden einer Anforderung an den URI "http://localhost/Service2.svc". Ursache ist möglicherweise, dass ohne die entsprechende domänenübergreifende Richtlinie oder mit einer nicht für SOAP-Dienste geeigneten Richtlinie domänenübergreifend auf einen Dienst zugegriffen wurde. Möglicherweise müssen Sie sich an den Besitzer des Diensts wenden, damit eine domänenübergreifende Richtliniendatei veröffentlicht und das Senden von sich auf SOAP beziehenden HTTP-Headern zugelassen wird. Dieser Fehler kann auch durch Verwendung von internen Typen im Webdienstproxy ohne das InternalsVisibleToAttribute-Attribut verursacht werden. Weitere Details finden Sie in der inneren Ausnahme.
      StackTrace:
           bei System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
           bei System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
           bei System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
           bei ESBIN_.ServiceReference1.Service2Client.Service2ClientChannel.EndSendMail(IAsyncResult result)
           bei ESBIN_.ServiceReference1.Service2Client.ServiceReference1_Service2_EndSendMail(IAsyncResult result)
           bei ESBIN_.ServiceReference1.Service2Client.OnEndSendMail(IAsyncResult result)
           bei System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
      InnerException: System.Security.SecurityException
           Message=""
           StackTrace:
                bei System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
                bei System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
                bei System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
           InnerException: System.Security.SecurityException
                Message=Sicherheitsfehler
                StackTrace:
                     bei System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
                     bei System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
                     bei System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState)
                InnerException:

     

    die rechtedateien sind aber im projekt!!

    Mittwoch, 14. September 2011 12:38
  • Habe es geschaft, habe im local den anschluss vergessen reinzuschreiben, und beim config den direckten verweis auf service ;DDD

    JIHU!!!

    Mittwoch, 14. September 2011 14:17