2つの文字列パラメータを持つメソッドを持つWebサービスがあります。私がデバッグしているとき、私はメソッドに2つの文字列値を渡す私の呼び出しメソッドで見ることができますが、実際にWebMethodは両方の値のnullを取得します。私はここで間違ってやっている何を方法WebMethodはパラメータでnullを受け取ります
NewsletterEmailSubscribers nes = new NewsletterEmailSubscribers();
nes.Login("Username", "Password");
を呼び出す
WebMethod属性
[WebMethod(Description = "Set username and password for validation purposes.")]
public void Login(string uname, string pword)
{
username = uname;
password = pword;
}
:ここではいくつかのコードですか?
--EDIT_
コードを追加しています。
ウェブサービス:サービス(NewsletterEmailSubscribers)を使用して
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class NewsletterEmailSubscribers : WebService
{
private static string username, password;
public NewsletterEmailSubscribers()
{
}
/// <summary>
/// Logins the specified username.
/// </summary>
/// <param name="username">The username.</param>
/// <param name="password">The password.</param>
[WebMethod(Description = "Set username and password for validation purposes.")]
public void Login(string uname, string pword)
{
username = uname;
password = pword;
}
/// <summary>
/// Adds subscriber email account.
/// </summary>
/// <param name="emailAddress">The email address</param>
/// <param name="newsletterType">The newsletter they have signed up to receive</param>
/// <param name="validationCode">The validation code</param>
[WebMethod(Description = "Initial add of subscriber email address and newsletter signing up for.")]
public void AddSubscriber(
string emailAddress,
string newsletterType,
string validationCode)
{
// Check some values
//Authenticate user, will throw exception if the user is invalid
using (SOAValidation validation = new SOAValidation())
{
validation.ValidateConnection(validationCode, username, password, "Full");
}
OracleParameterCollection parameters = new OracleParameterCollection();
parameters.AddWithValue("subscriber_email", emailAddress);
parameters.AddWithValue("newsletter_type", newsletterType);
Database.ExecuteQuery("dw.newsletter_pkg.newsletter_subscriber_add", parameters);
}
}
は、ウェブページ
private void SubmitEmail(string email)
{
if (ValidateEmail(email))
{
try
{
NewsletterEmailSubscribers nes = new NewsletterEmailSubscribers();
nes.Login("Username", "Password");
string validationCode;
using (Cokesbury.RemoteValidation.Validator validator = new Cokesbury.RemoteValidation.Validator())
{
validationCode = validator.ValidationCode(System.Configuration.ConfigurationManager.AppSettings["PasswordSalt"].ToString());
}
// submit to db
nes.AddSubscriber(email, "FICT", validationCode);
// Switch to confirm message
mvPage.SetActiveView(vwThankYou);
}
catch (Exception ex)
{
mvPage.SetActiveView(vwFail);
bool rethrow = ExceptionPolicy.HandleException(ex, "Presentation Services Exception Policy");
if (rethrow)
{
throw (ex);
}
}
}
else
lblEmailError.Visible = true;
}
コード全体を投稿できますか?それが失敗する理由は見当たらない。 –
回答が得られる情報が少なすぎます。あなたのクライアントプロキシを再生成してみてください。 –