Я полагаю, что os.system просто вызывает любой командный процессор, настроен для пользователя, таким образом, я не думаю, что можно сделать это независимым от платформы способом. Мой командный процессор мог быть чем-либо от удара, emacs, рубина, или даже quake3. Некоторые из этих программ не ожидают вид аргументов, Вы являетесь передающими им и даже если они сделали нет никакой гарантии, они делают свой выход из того же пути.
Марк понял. Самый простой способ использовать режим требований совместимости ASP.NET - применить к операции атрибут AspNetCompatibilityRequirementsMode . Тогда у вас будет доступ к параметрам формы HttpContext . Вот как вы это сделаете:
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "Login",
BodyStyle = WebMessageBodyStyle.Bare)]
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Required)]
public Stream Login(Stream input)
{
string username = HttpContext.Current.Request.Params["username"];
string password = HttpContext.Current.Request.Params["password"];
}
Не могли бы вы публиковать сообщения на обычной странице ASP.NET (возможно, в ashx / handler или MVC) и просто использовать Request.Form
? Поддерживается составная часть.