我正在尝试使用agsXMPP库在我的eJabberd服务器上注册帐户。这是我的代码,就像这里一样:
http://www.codeproject.com/Articles/21267/Creating-a-Jabber-Client-using-the-agsXMPP-Library
static void Main(string[] args)
{
string JID_Sender = "newaccount@pc-michi";
string Password = "123";
Jid jidSender = new Jid(JID_Sender);
XmppClientConnection xmpp = new XmppClientConnection(jidSender.Server);
xmpp.RegisterAccount = true;
try
{
xmpp.Open(jidSender.User, Password);
xmpp.OnLogin += new ObjectHandler(xmpp_OnLogin);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.Write("Wait for Login ");
int i = 0;
_wait = true;
do
{
Console.Write(".");
i++;
if (i == 10) _wait = false;
Thread.Sleep(500);
} while (_wait);
Console.WriteLine();
}
static void xmpp_OnLogin(object sender)
{
_wait = false;
Console.WriteLine("Logged In");
}
所以,这应该可以正常工作,至少它有时会这样做。存在问题。该帐户仅在我重新启动服务器时创建。为什么会这样?我没有更改任何有关服务器上的设置,它是新安装的。我也已经尝试重新安装eJabberd。但结果仍然相同。你知道这个问题的解决方案吗?或者它只是我在代码中缺少的东西?
您可以在此处找到我的配置文件:http://textuploader.com/5yu90
答案 0 :(得分:0)
您在ejabberd.yml
中缺少移民将 access_from:deny 替换为 access_from:allow
## Local c2s or remote s2s users cannot register accounts
##
access_from: allow
并评论此行
不要忘记重启服务器或重新加载配置文件。