hallo,
ich habe in flash ein kontakt formular gebastelt. jetzt ist es aber ziehmlich doof dass sich beim besucher outlook öffnet und er erst das absenden der email bestätigen muss...
dachte da waehre ein webservice in c# ganz nett...
kann mir vielleicht direkt jemand sagen wie ich es in der hello world schaffe dass eine email versand wird mit dem betreff den ich der asmx beim aufruf übergeb?
public string HelloWorld() {
return "Hello World";
}
oder vielleicht gute quellen?
MfG
s0h0
Eine Null kann ein bestehendes Problem verzehnfachen
ok ich hab nun doch erstmal demit angefangen den service aus aeiner aspx heraus aufzurufen.
nun kommt aber die JS fehlermeldung = "Erlaubnis verweigert"
dateien (default.aspx und service.asmx,service.cs) liegen nebeinanderauf ddem server.
kann mir da jemand helfen please?
viiielen dank
das ist die default.aspx
<html>
<body>
<script language="jscript">
function btn_click (a, b)
{
var xmlRequest;
var xmlObj = new ActiveXObject("Msxml2.DOMDocument") ;
var sXml = "<?xml version=\"1.0\" ?>" ;
sXml += "<soap:Envelope "
sXml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " ;
sXml += "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
sXml += "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
sXml += "<soap:Body>" ;
sXml += "<Add xmlns=\"http://tempuri.org/\">" ;
sXml = sXml + "<a>" + a.value + "</a>" ;
sXml = sXml + "<b>" + b.value + "</b>" ;
sXml += "</Add></soap:Body></soap:Envelope>"
// Try to parse the XML string into DOM object
xmlObj.loadXML(sXml) ;
//To see the validated XML string is well-formed
// XmlRequest.innerText = xmlObj.xml ;
document.getElementById('TextBox1').Text = xmlObj.xml;
var xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP") ;
xmlHTTP.Open ( "Post", "http://localhost/ASP.NET/Service.asmx", false) ;
xmlHTTP.setRequestHeader("SOAPAction", "http://tempuri.org/Add") ;
xmlHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
xmlHTTP.Send(xmlObj.xml) ;
document.getElementById('TextBox1').Text += xmlHTTP.responseText ;
var xmlResponse = xmlHTTP.responseXML ;
// answer.innerText = xmlResponse.selectSingleNode("soap:Envelope/soap:Body/AddResponse/AddResult").text ;
}
</script>
<form runat="server">
<p>Please input a:<input id="a" name="a"></input></p>
<p>Please input b:<input id="b" name="b"></input></p>
<p>
<input type="button" id="btn" value="Enter"
onclick="btn_click(a, b)"></input>
</p>
<p>Answer is
<asp:TextBox ID="TextBox1" runat="server" Width="580px"></asp:TextBox></p>
<hr></hr>
<p>Request:</p>
<p>Response:</p>
</form>
</body>
</html>
und das die service.cs
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://microsoft.com/webservices/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service ()
{
//Auskommentierung der folgenden Zeile bei Verwendung von Designkomponenten aufheben
//InitializeComponent();
}
[WebMethod()]
public int Add(int a, int b)
{
return a + b;
}
}
Eine Null kann ein bestehendes Problem verzehnfachen
wenn ich statt
xmlHTTP.Open ( "Post", "http://localhost/ASP.NET/Service.asmx", false) ;
es so mache
xmlHTTP.Open ( "Post", "Service.asmx", false) ;
dann passiert garnix bei klick uf den button...
Eine Null kann ein bestehendes Problem verzehnfachen
xmlHTTP.Open ( "Post", "http://www.l-ang.de/Service.asmx", false) ;
hmmm ok, jetzt gehts mit der vollen url. zumindest fragt er mich beim buttonclick ob ich die informationen abrufen möchte...
aber dann passiert nix weiter. im jscript sag ich doch aber eigentlich dass er mir das in die textbox schreiben soll.
?(
Eine Null kann ein bestehendes Problem verzehnfachen
Sag mal warum verwendest du denn dafür Javascript? Warum machst du es nicht direkt im CodeBehind mit C#? Da sparst du dir auch den Umweg mit dem WebService (es sei denn das möchtest du unbedingt so machen).
Es gibt da direkt ne Klasse zum Mailversand.
ciao Anke
hi,
am ende möchte ich dass der webservice von einem flashfilm aufgerufen wird mit einem wert. deshalb der webservice.
javascript habe ich hier deswegen verwendet, weil ich nichts anderes gefunden habe womit ich es erstmal soweit hinbekommen hab...
ja, den mailversand wollte ich von der asmx datei aus vornehmen.
hast du vielleicht ein wenig code für mich wie ich ich der cs datei den service aufrufen und den rückgabe wert ausgeben kann?
oder welche klasse brauche ich dafuer?
danke
Eine Null kann ein bestehendes Problem verzehnfachen
Ist der WebService in einem anderen Projekt oder liegt er direkt mit in der Anwendung?
Du kannst einfach eine Instanz der Klasse erzeugen und dann die Methode aufrufen, wenn der Webservice mit in der Anwendung liegt.
hab mir jetzt das zusammengebastelt. aber es kommt imme die fehlermeldung
"'100' ist ein unerwartetes Token. Das erwartete Token ist '"' oder '''. Zeile 20, Position 65.
"
was soll das bedeuten?
die url musste ich verfälschen...
protected void Button1_Click(object sender, EventArgs e)
{
// doc.Load(Server.MapPath(@"kontakt.xml"));
XmlDocument doc = new XmlDocument();
// xml aus page lesen
System.Net.WebRequest req = System.Net.HttpWebRequest.Create("http://www.fickmatratze.de/Service.asmx/Add");
System.Net.WebResponse resp = req.GetResponse();
XmlDocument xDoc = new XmlDocument();
StreamReader r = new StreamReader(resp.GetResponseStream());
xDoc.LoadXml(r.ReadToEnd());
}
so sieht der service aus:
public string Add()
{
return "silk";
}
Eine Null kann ein bestehendes Problem verzehnfachen
ja, die files liegen im gleichen verzeichnis.
kannst du mir dass zeigen wie ich das machen kann?
Eine Null kann ein bestehendes Problem verzehnfachen
bist ein schatz
Service sv = new Service();
funktioniert 🙂
Eine Null kann ein bestehendes Problem verzehnfachen