让我们列出一些针对SharePoint开发人员的好面试问题.请在每个条目中提供一个问题,如果可能,请提供答案.
此外,如果提供的答案有误,请随时建议更正.
我会先走:
问:SharePoint如何存储页面?
答:如何定位sharepoint-document-library-source-page-on-the-server?
通过WSS 3.0版本公开的内置Web服务将文件上载到SharePoint服务器上的文档库的最佳方法是什么?
按照两个初步答案......
我们肯定需要使用Web服务层,因为我们将从远程客户端应用程序进行这些调用.
WebDAV方法对我们有用,但我们更愿意与Web服务集成方法保持一致.
还有一个上传文件的网络服务,痛苦但一直有效.
你指的是"复制"服务吗?我们已成功使用此服务的CopyIntoItems方法.这是仅使用WSS Web服务API将文件上载到文档库的推荐方法吗?
我已将我们的代码发布为建议的答案.
我有一个简单的2D字符串数组,我想把它填入MOSS中的SPFieldMultiLineText.这映射到ntext数据库字段.
我知道我可以序列化为XML并存储到文件系统,但我想在不触及文件系统的情况下进行序列化.
public override void ItemAdding(SPItemEventProperties properties)
{
// build the array
List<List<string>> matrix = new List<List<string>>();
/*
* populating the array is snipped, works fine
*/
// now stick this matrix into the field in my list item
properties.AfterProperties["myNoteField"] = matrix; // throws an error
}
Run Code Online (Sandbox Code Playgroud)
看起来我应该可以做这样的事情:
XmlSerializer s = new XmlSerializer(typeof(List<List<string>>));
properties.AfterProperties["myNoteField"] = s.Serialize.ToString();
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我发现的所有示例都演示了写入文本文件.
如何通过ELB将ssl连接到由GlassFish在Amazon AWS EC2实例上提供的websocket?
我在GlassFish 4.1 b13预发布中使用Tyrus 1.8.1作为我的websocket实现.
端口8080是不安全的,端口8181是用ssl保护的.
我已成功使用ws和wss直接连接到我的EC2实例(绕过我的ELB).即以下两个网址都有效:
我已经通过使用tcp 80> tcp 8080监听器在我的ELB上成功使用了ws(非ssl).即以下网址有效:
但是,我没有能够通过我的ELB找到使用wss的方法.
我尝试了很多东西.
我假设最有可能通过我的ELB工作的方法是在我的ELB上创建一个tcp 8181> tcp 8181监听器并启用代理协议,并使用以下URL:
不幸的是,这不起作用.我想我可能必须在glassfish上启用代理协议,但是我无法找到如何做到这一点(或者如果可能的话,或者wss是否有必要在我的ELB上工作).
另一种选择可能是以某种方式使用ws或wss运行在ELB上终止的ssl连接,并通过使用ssl> tcp 8080侦听器使其继续对glassfish不安全.这对我来说也不起作用,但也许有些设置不正确.
有没有人对我上述两项试验进行任何修改.或者有人有其他建议吗?
谢谢.
我正在尝试使用webpart中的以下CAML查询来查询SharePoint列表.我已经在U2U CAML查询生成器和Stramit CAML Viewer中测试了查询,它工作正常,只返回匹配的记录,但是当我在我的webpart中使用它时,它返回所有列表项.它让我变得疯狂.这是代码:
string camlQuery = string.Format(@"<Query><Where><Contains><FieldRef Name='Title' /><Value Type='Text'>2</Value></Contains></Where></Query>");
SPQuery query = new SPQuery();
query.Query = camlQuery;
SPListItemCollection items = Articles.GetItems(query);
grid.DataSource = items.GetDataTable();
grid.DataBind();
Run Code Online (Sandbox Code Playgroud) 在Windows XP中,是否可以从命令行,批处理文件或者更好的PowerShell脚本将文件复制到网络位置?
让我走上这条研究之路的是试图从用户的机器将文件发布到WSS 3.0文档库.我无法将驱动器映射到相关库,因为WSS站点仅可用于通过除80或443之外的端口上的NTLM进行身份验证.我想我可以交替使用WSS Web服务来推送文件,但我我现在真的很好奇这个问题的答案.
有Windows SharePoint Services(WSS),然后是Microsoft Office SharePoint Server(MOSS).MOSS比WSS(作为Microsoft Server许可的一部分提供)昂贵得多.
我的问题是:MOSS做了什么让它值得额外付出代价?
..并且Microsoft Search Server不与业务数据缓存(BDC)竞争吗?
编辑:功能比较页面有助于说明MOSS具有的众多功能,而WSS则没有.从外观上看,MOSS的大部分功能都是面向企业的.
您如何用几句话描述MOSS相对于WSS的差异(或其他好处)?从本质上讲,MOSS(而不是WSS)中的"大票"项目是什么?
我对这一个很疯狂,无论如何都找不到任何体面的信息.
有很多关于使用WCF和Ntlm模拟连接到SharePoint 3.0 Web服务的信息.但是,当访问SharePoint服务的客户端远程访问SharePoint网络并需要进行身份验证时,如何最好地配置凭据并将凭据传递给SharePoint服务.
我是否可以在servicemodel.config中的SharePoint框中指定本地的Windows用户名和密码.我们的SharePoint实例在访问它的域之外作为独立运行.因此,模拟是无关紧要的,因为共享点框上不存在域用户.
我尝试了许多组合,如下面的代码..但是我反复得到例外:
"HTTP请求未经授权使用客户端身份验证方案'匿名'.从服务器收到的身份验证标头是'NTLM,Basic realm ="wss.internaldev.local"'.
任何人都可以提供使用Windows凭据连接到"远程"SharePoint Web服务的示例吗?
ListsSoapClient proxy = new ListsSoapClient();
proxy.ClientCredentials.Windows.ClientCredential.UserName = "admin_user";
proxy.ClientCredentials.Windows.ClientCredential.Password = "admin_password";
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification;
listItems = proxy.GetListItems(...);
proxy.Close();
Run Code Online (Sandbox Code Playgroud)
绑定示例:
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="None" />
</security>
Run Code Online (Sandbox Code Playgroud)
要么..
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
Run Code Online (Sandbox Code Playgroud)
行为:
<behavior name="behavior_WSS">
<clientCredentials>
<windows allowedImpersonationLevel="Impersonation" allowNtlm="true" />
</clientCredentials>
</behavior>
Run Code Online (Sandbox Code Playgroud)
要么
<windows allowedImpersonationLevel="Delegation" allowNtlm="true" />
Run Code Online (Sandbox Code Playgroud) 我使用NodeJS的eniaros/ws模块使用网络套接字在iOS应用程序和NodeJS服务器之间实时通信.
该应用程序运行正常,但现在我必须使用wss保护服务器和iOS应用程序之间的通信.我有快速SSL证书和密钥,我在服务器上使用以下代码:
var fs = require('fs');
var cfg = {
ssl: true,
port: 8081,
ssl_key: 'key.key',
ssl_cert: 'cert.crt'
};
var httpServ = ( cfg.ssl ) ? require('https') : require('http');
var app = null;
// dummy request processing
var processRequest = function( req, res ) {
res.writeHead(200);
res.end("All glory to WebSockets!\n");
};
if ( cfg.ssl ) {
app = httpServ.createServer({
// providing server with SSL key/cert
key: fs.readFileSync( cfg.ssl_key ),
cert: fs.readFileSync( cfg.ssl_cert )
}, processRequest ).listen( cfg.port ); …Run Code Online (Sandbox Code Playgroud) 当我尝试使用sslserver如下所示运行 Django 应用程序时,
python manage.py runsslserver
Run Code Online (Sandbox Code Playgroud)
错误:
追溯:
Validating models...
System check identified no issues (0 silenced).
November 08, 2019 - 11:17:26
Django version 2.0.7, using settings 'dashboard_channels.settings'
Starting development server at https://127.0.0.1:8000/
Using SSL certificate: \lib\site-packages\sslserver\certs\development.crt
Using SSL key: \lib\site-packages\sslserver\certs\development.key
Quit the server with CTRL-BREAK.
[08/Nov/2019 11:18:33] "GET / HTTP/1.1" 200 1299
[08/Nov/2019 11:18:34] "GET / HTTP/1.1" 200 1299
[08/Nov/2019 11:18:35] "GET /static/js/jquery.js HTTP/1.1" 200 270575
Not Found: /ws/home
[08/Nov/2019 11:18:36] "GET /ws/home HTTP/1.1" 404 2134
Run Code Online (Sandbox Code Playgroud)
浏览器控制台: …
wss ×10
sharepoint ×6
moss ×4
ssl ×3
websocket ×3
web-services ×2
amazon-elb ×1
c# ×1
caml ×1
command-line ×1
comparison ×1
glassfish ×1
javascript ×1
node.js ×1
powershell ×1
python ×1
scripting ×1