(*)主要应用场景是sharepoint由于webpart引发的错误根本打不开页面, 可以尝试以下方法.
直接在地址栏键入 http://{hostname}/_layouts/2052/spcontnt.aspx?&url={errorpageurl}.
{hostname} 为你的sharepoint站点服务器的名称
{errorpageurl} 为出现错误的页面的url。
去试试看,有没有效果?^_^
原文参考 http://www.cnblogs.com/wudebin/archive/2005/12/20/300904.html
posted @ 2009-11-16 22:17 Endian/骆建峰 阅读(20) 评论(0)
编辑
项目背景:Exchange的邮件服务器,设定了所有的用户均不能发送外部邮件
项目目的:建一个列表,由用户提交数据,填写:“收件人地址”、“邮件内容”、“标题”、附件,然后利用MOSS自带的审批流程来批准邮件的发出。
具体代码如下:
public override void ItemUpdated(SPItemEventProperties properties)
{
//获取触发事件的列表项
SPSite site = new SPSite(properties.SiteId);
SPWeb web = site.OpenWeb(properties.OpenWeb().ID);
SPList list = web.Lists[properties.ListId];
SPListItem item = list.Items.GetItemById(properties.ListItemId);
//获取列表项的创建者
string strUserValue = Convert.ToString(item["Author"]);
int intIndex = strUserValue.IndexOf(';');
int intID = Int32.Parse(strUserValue.Substring(0, intIndex));
SPUser muser = web.SiteUsers.GetByID(intID);
//获取审批信息
SPModerationInformation myMI = item.ModerationInformation;
string getstate = myMI.Status.ToString();
if (getstate == "Approved")
{
//设置发邮件的组件
MailMessage mail = new MailMessage("infozh@fzh.com", Convert.ToString(item["收件人地址"]));
mail.SubjectEncoding = Encoding.UTF8;
//邮件主题
mail.Subject = Convert.ToString(item["标题"]);
mail.IsBodyHtml = false; //是否允许内容为 HTML 格式
mail.BodyEncoding = Encoding.UTF8;
//邮件内容
mail.Body = Convert.ToString(item["邮件内容"]);
//邮件的回复地址,用户不能发但能收
mail.ReplyTo = new MailAddress(muser.Email, muser.Name);
mail.From = new MailAddress("infozh@fzh.com", muser.Email);
//添加附件
for (int i = 0; i < item.Attachments.Count; i++)
{
string strPath = item.Attachments.UrlPrefix + item.Attachments[i].ToString(); //要发送附件的网址
string strFileName = strPath.Substring(strPath.LastIndexOf("/") + 1); ; //文件名
WebClient wc = new WebClient();
MemoryStream m = new MemoryStream();
wc.UseDefaultCredentials = true;
byte[] fs = wc.DownloadData(strPath);
m = new MemoryStream(fs); //将文件抓取下来,存于内存中.
Attachment ma = new Attachment(m, strFileName);
mail.Attachments.Add(ma);
}
//设置验证信息
SmtpClient smtp = new SmtpClient("mailserver");
smtp.Credentials = new NetworkCredential("username", "password"); //SMTP 验证
smtp.Send(mail);
mail.Attachments.Dispose(); //邮件发送完毕,释放对附件的锁定
sentinform(mail.Subject, muser.Email, Convert.ToString(item["收件人地址"]));
}
}
//发送通知邮件
void sentinform(string substr,string soueml,string tareml)
{
MailMessage sentok = new MailMessage("moss@fzh.com", soueml);
sentok.SubjectEncoding = Encoding.UTF8;
sentok.Subject = "ANN:您提交的发送外网邮件已发送成功";
sentok.Body = "已发送的邮件主题是:" + substr + " 收件人地址是:" + tareml;
SmtpClient smtp1 = new SmtpClient("mailserver");
smtp1.Credentials = new NetworkCredential("username", "password"); //SMTP 验证
smtp1.Send(sentok);
}
posted @ 2008-09-24 17:27 Endian/骆建峰 阅读(192) 评论(0)
编辑
Sharepoint 中,使用Form认证后,为了使用资源管理器打开文档,使用SharepointDesigner打开编辑页面时能够正常进行,用户登陆时必须手动选择 自动登陆。
为了解决这个问题,我修改了login.aspx文件
1、首先在 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS 下找到login.aspx文件,一般都放在这里,除非你修改过默认的_layouts路径。
2、找到如下代码:
- <asp:login id="login" FailureText="<%$Resources:wss,login_pageFailureText%>" runat=server width="100%">
- {.... ....}
- </table>
- </layouttemplate>
- </asp:login>
3、在</layouttemplate>前,添加如下代码:
- <script type="text/javascript"><!--
- document.getElementById("ctl00_PlaceHolderMain_login_RememberMe").checked=true;
- // --></script>
这样做可以使自动登陆文字前的checkbox默认下就选中,这样用户就不需要手动选择了
4、如果不想让用户看到这个自动登陆的选项,可以对 自动登陆 所在的行进行隐藏。首先要找到如下代码
- <tr>
- <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
- </tr>
这段代码就是用来显示自动登陆文字及自动登录文字前的checkbox的。
现在对<tr>添加display=none的属性对其进行隐藏:
- <tr style=”display:none”>
- <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
- </tr>
这样,就解决了Sharepoint中使用Form认证后强制自动登陆的问题。
Form验证方式下,Sharepoint总是有这样那样的问题,比如需要开启客户端集成等等,其登陆页面也及其丑陋,有时间要研究一下如何修改自定义登陆页面。
posted @ 2008-05-15 16:50 Endian/骆建峰 阅读(265) 评论(0)
编辑
修改Web应用程序根目录上的Web.config文件中的两个地方:
查找以下位置并更改即可(红色为更改前后的值)
一、MaxControls="200" CallStack="
false" 改为 MaxControls="200" CallStack="
true"
二、customErrors mode="
On" 改为 customErrors mode="
Off"
从此以后就可以对出错一目了然了。
posted @ 2008-03-12 14:27 Endian/骆建峰 阅读(536) 评论(3)
编辑
将你的Asp.NET应用程序嵌入到SharePoint 读后感
第一点:将生成的dll拷贝到网站目录下bin文件夹
第二点:在网站web.config文件的<SafeControls></SafeControls>节点中添加以下(目的是把应用程序注册为安全类型)
<SafeControl Assembly="WebInMOSS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="WebInMOSS" TypeName="*" Safe="True" />
说明:其中WebInMOSS为应用程序的命名空间
第三点:删除页面的AutoEventWireup="true"属性
第四点:Web.config 文件的<SharePoint>节点,在 <PageParserPaths> </PageParserPaths>
节点下增加一个虚拟路径 <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" />
声明此站点下所有文件允许服务器端事件,当然你也可以制定虚拟目录是那个文件夹,但是这个值 必须以 ~/ 或 / 开头,并且必须以文件名或 * 结尾。
(目的为允许服务器端事件的运行)
第五点:把web.config文件的enableSessionState属性设为true(如果此应用程序要使用到Session的话)
<pages enableSessionState="false" enableViewState="true" enableViewStateMac="true" validateRequest="false"
pageParserFilterType="Microsoft.SharePoint.ApplicationRuntime.SPPageParserFilter, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" asyncTimeout="7">
第六点:在网站web.config文件的<SafeControls></SafeControls>节点中添加以下(目的是允许应用程序使用用户控件)
<SafeControl Src="~/Pages/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" />
说明:其中Pages是用户控件所在的文档库
原文地址:
http://www.cnblogs.com/Clank/archive/2007/05/21/754073.html
http://www.cnblogs.com/Clank/archive/2007/06/07/762576.html
posted @ 2007-11-23 16:21 Endian/骆建峰 阅读(540) 评论(0)
编辑
posted @ 2007-11-21 16:26 Endian/骆建峰 阅读(466) 评论(0)
编辑
posted @ 2007-11-13 13:50 Endian/骆建峰 阅读(683) 评论(1)
编辑