本文介绍了实现办公移动服务的Web服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨
我想编写一个用于Outlook文本消息的Web服务。我使用编写此代码
这是我的代码:
Hi
I want to write a web service to use in outlook text messaging. I wrote this code using Office 2010 Mobile Service Guidelines
this is my code:
using System;
using System.IO;
using System.Web;
using System.Xml;
using System.Data;
using System.Text;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Security.Authentication;
using System.Collections.Generic;
using System.Web.Services.Description;
using System.ComponentModel;
namespace OMS2
{
/// <summary>
/// A WebService implementing the Outlook 2007 Mobile Service interface.
/// Allows you to send SMS messages from Outlook 2007!
/// </summary>
[WebService(Namespace = "http://schemas.microsoft.com/office/Outlook/2006/OMS")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class oms : WebService
{
/// <summary>
/// Returns information about the service. The returned XML contains
/// information about the service, if it supports SMS, MMS or both etc.
/// See the ServiceInfo.xml for more information about the XML format.
/// </summary>
/// <returns></returns>
[WebMethod]
public string GetServiceInfo()
{
return ReadXml("serviceInfo.xml");
}
/// <summary>
/// Method authenticating a user and geting user information.
/// Returns an XML string with some basic user information (phone number and e-mail).
/// </summary>
/// <param name="xmsUser">An XML string containing the user credentials.</param>
/// <returns>An XML string with user information.</returns>
[WebMethod]
public string GetUserInfo(string xmsUser)
{
try
{
//XmlDocument xml = new XmlDocument();
//xml.LoadXml(xmsUser);
//XmlNamespaceManager nmManager = new XmlNamespaceManager(xml.NameTable);
//nmManager.AddNamespace("o", "http://schemas.microsoft.com/office/Outlook/2006/OMS");
//string username = xml.SelectSingleNode("/o:xmsUser/o:userId", nmManager).InnerText;
//string password = xml.SelectSingleNode("/o:xmsUser/o:password", nmManager).InnerText;
//Ung1881Proxy proxy = new Ung1881Proxy();
//proxy.Login(username, password);
return ReadXml("userInfo.xml");
}
catch (Exception)
{
StringWriter stringWriter = new StringWriter();
XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);
xmlWriter.WriteStartElement("userInfo", "http://schemas.microsoft.com/office/Outlook/2006/OMS");
xmlWriter.WriteStartElement("error");
xmlWriter.WriteAttributeString("code", "invalidUser");
xmlWriter.WriteAttributeString("severity", "failure");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
string error = stringWriter.GetStringBuilder().ToString();
xmlWriter.Close();
stringWriter.Dispose();
return error;
}
}
/// <summary>
/// Method sending an SMS/MMS message to one or more recepients.
/// </summary>
/// <param name="xmsData">An XML string with the list of recepients and the content of the message.</param>
/// <returns>An XML string with a status message.</returns>
[WebMethod]
public string SendXms(string xmsData)
{
//XmlDocument xml = new XmlDocument();
//xml.LoadXml(xmsData);
//XmlNamespaceManager nmManager = new XmlNamespaceManager(xml.NameTable);
//nmManager.AddNamespace("o", "http://schemas.microsoft.com/office/Outlook/2006/OMS");
//string username = xml.SelectSingleNode("/o:xmsData/o:user/o:userId", nmManager).InnerText;
//string password = xml.SelectSingleNode("/o:xmsData/o:user/o:password", nmManager).InnerText;
try
{
//List<string> recipients = new List<string>();
//List<string> messages = new List<string>();
//foreach (XmlNode node in xml.SelectNodes("//o:recipient", nmManager))
//{
// recipients.Add(node.InnerText);
//}
//foreach (XmlNode node in xml.SelectNodes("//o:content[@contentType='text/plain']", nmManager))
//{
// messages.Add(node.InnerText);
//}
//Ung1881Client client = new Ung1881Client(username, password);
//foreach (string number in recipients)
//{
// foreach (string message in messages)
// {
// client.SendMessage(number, message);
// }
//}
return BuildError("ok", false); ;
}
catch (AuthenticationException)
{
return BuildError("invalidUser", true);
}
catch (Exception)
{
return BuildError("others", true);
}
}
/// <summary>
/// Simple helper method reading an file from disk and
/// returning the content as a string.
/// </summary>
/// <param name="fileName">The relative path to the file you want to read.</param>
/// <returns>The file content.</returns>
private string ReadXml(string fileName)
{
StreamReader sr = new StreamReader(Server.MapPath(fileName), Encoding.Unicode);
string xml = sr.ReadToEnd();
sr.Dispose();
return xml;
}
/// <summary>
/// Simple helper method building the return XML for the SendXms method.
/// </summary>
/// <param name="errorCode">The error code.</param>
/// <param name="failed">If this was a failure or not.</param>
/// <returns>The XML fragment to return to the client.</returns>
private string BuildError(string errorCode, bool failed)
{
StringWriter stringWriter = new StringWriter();
XmlTextWriter wr = new XmlTextWriter(stringWriter);
wr.WriteStartDocument();
wr.WriteStartElement("xmsResponse", "http://schemas.microsoft.com/office/Outlook/2006/OMS");
wr.WriteStartElement("error");
wr.WriteAttributeString("code", errorCode);
wr.WriteAttributeString("severity", failed ? "failure" : "neutral");
wr.WriteEndElement();
wr.WriteEndElement();
wr.WriteEndDocument();
wr.Close();
string returnValue = stringWriter.GetStringBuilder().ToString();
stringWriter.Dispose();
return returnValue;
}
}
}
问题是当我要添加网络服务网址时outlook文本消息帐户设置,显示错误消息,这是错误=> Web服务地址不正确或已损坏。检查Web服务地址或联系您的管理员。 webservice uri => http://localhost/TestOms/OMS.asmx请帮帮我谢谢
The problem is when i want to add web service url in outlook text messaging account setting, an error message displays this is the error => The webservice address is incorrect or corrupted. Check the web service address or contact your administrator. webservice uri => http://localhost/TestOms/OMS.asmx Please help me Thanks
推荐答案
这篇关于实现办公移动服务的Web服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!