我正在试验 Azure Connect。我希望能够将一些文件从工作角色推送到本地服务器。我还想为一些批处理作业打印到一些网络打印机。从我读过的内容来看,我认为这应该是可能的。我一直在关注本教程的基础知识,但希望获得针对这两个用例的任何教程或帖子的指针。
我也很好奇是否有人知道 Azure Connect 是否以及何时停止预览/CTP 并公开提供。
谢谢
更新 这是我用作 POC 的代码,用于生成一个虚拟文件并将其从 MVC Web 角色复制到我的本地。我最初遇到了路径错误(错误:System.IO.IOException:找不到网络路径。)我通过不使用我的本地框的完全限定名称来修复它,而是使用短名称代替添加本文中描述的防火墙规则。
public class TestController : Controller
{
public ActionResult SaveFile()
{
return View();
}
[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(
string lpszUsername,
string lpszDomain,
string lpszPassword,
int dwLogonType,
int dwLogonProvider,
out IntPtr phToken
);
[HttpPost]
public ActionResult SaveFile(FormCollection collection)
{
try
{
string nowString = DateTime.UtcNow.ToString("yyyyMMdd HHmmss");
string path = @"\\fullyqualifiedservername\e$\FileShare\";
path = Path.Combine(path, string.Format("{0}.txt", nowString));
IntPtr userHandle = IntPtr.Zero;
bool loggedOn = LogonUser("myusername", "mydomain", "mypassword", 9, 0, out userHandle);
if (loggedOn)
{
WindowsImpersonationContext context = WindowsIdentity.Impersonate(userHandle);
System.IO.FileInfo f = new FileInfo(path);
using (FileStream fs = f.OpenWrite())
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(string.Format("Fake content written at {0}", nowString));
fs.Write(b, 0, b.Length);
}
context.Undo();
}
return RedirectToAction("SaveFile");
}
catch(Exception ex)
{
ViewBag.Error = ex.ToString();
return View();
}
}
}