Wow, my first blog posting for 2011 - yes I have been busy, and neglectful!
One thing that's kept me busy is working with jQuery & SharePoint - very good stuff. But I have my jQuery js's and style sheets in a SharePoint document library. When I tried referencing them, I kept getting errors on the page...
because, I wasn't referencing these as:
<script src="./Jquery/jquery.tools.min.js" type="text/javascript">
Note the "." before the library name - that's what was missing.
Back to it! See ya!
Friday, April 08, 2011
Monday, October 25, 2010
DoDN Source & Presentation
Thanks for coming to Western Michigan's Day of Dot Net this past Saturday! The session went well, had some good questions about the configuration of a SharePoint developer's rig that I'll address in some detail in a subsequent post, but wanted to get this posted first. It's the presentation deck and the source code for the demos. The source code is all built for Visual Studio 2010. If you have access to the Expression Blend tools, all the better, but for the demos Visual Studio will definitely do the trick.
Here's the link to the zip file: DoDN-SharePoint-Silverlight.zip
Note that for the third demo, you'll need to host the compiled .XAP file in a SharePoint site that has a list named DayofDotNet. There's a .STP file (a SharePoint List Template file) you'll need to use to create this list, so that it has the fields & content the code is looking for. Post a comment or email me if you get stuck.
Thanks again for attending!
Steve & Charles
Here's the link to the zip file: DoDN-SharePoint-Silverlight.zip
Note that for the third demo, you'll need to host the compiled .XAP file in a SharePoint site that has a list named DayofDotNet. There's a .STP file (a SharePoint List Template file) you'll need to use to create this list, so that it has the fields & content the code is looking for. Post a comment or email me if you get stuck.
Thanks again for attending!
Steve & Charles
Thursday, October 07, 2010
Visual Studio 2010 & Crystal Reports - change server at runtime
What? This isn't a SharePoint topic! You're right...every so often have to stretch a little bit.
So I have an ASP.Net web app and needed to add in a report. I didn't want to hand code it, and I had looked at using Crystal Reports for a different project & liked how nicely it integrates with Visual Studio. EZ-PZ to deploy it to the server, just install the runtime, deploy the project and we have reports!
Then came time to get the project up to production. I installed the runtime for Crystal Reports, clicked the Report link,and got the dreaded Database Login failed. Hmmm - I had updated the web.config appsettings to point to the Production SQL Server instead of my dev box.
That wasn't enough. Found a few entries suggesting to use the CrystalDecisions ConnectionInfo class, then another page saying to apply this change to all of the tables & subtables on the report, but that didn't help me - still got that logon error.
I ended up going the route of populating a data table with my report data, then using this table in the report - made things easier.
One other twist, I then needed to export this as a PDF, but I have SSL enabled; had to add in a few more lines of code. Take a look! And yes, this is VB.Net - it's an inherited project, too many lines to convert over!
Dim dt As DataTable
dt = BindReport()
rpt.SetDataSource(dt)
Dim reportDate As DateTime = Session("CurrentPayPeriod")
' Tell the browser this is a PDF document so it will use an appropriate viewer.
Response.Buffer = True
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, False, "Timesheet Report")
Dim conString As String = System.Configuration.ConfigurationSettings.AppSettings("connectString")
Dim con As SqlConnection = New SqlConnection(conString)
con.Open()
Dim cmd As New SqlCommand("usp_GetReportData", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@SelectedDate", SqlDbType.Date).Value = CDate(Session("ReportPeriod"))
cmd.Prepare()
Dim sqlAdapter As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dtReport As DataTable = New DataTable()
sqlAdapter.Fill(dtReport)
con.Close()
Return dtReport
End Function
So I have an ASP.Net web app and needed to add in a report. I didn't want to hand code it, and I had looked at using Crystal Reports for a different project & liked how nicely it integrates with Visual Studio. EZ-PZ to deploy it to the server, just install the runtime, deploy the project and we have reports!
Then came time to get the project up to production. I installed the runtime for Crystal Reports, clicked the Report link,and got the dreaded Database Login failed. Hmmm - I had updated the web.config appsettings to point to the Production SQL Server instead of my dev box.
That wasn't enough. Found a few entries suggesting to use the CrystalDecisions ConnectionInfo class, then another page saying to apply this change to all of the tables & subtables on the report, but that didn't help me - still got that logon error.
I ended up going the route of populating a data table with my report data, then using this table in the report - made things easier.
One other twist, I then needed to export this as a PDF, but I have SSL enabled; had to add in a few more lines of code. Take a look! And yes, this is VB.Net - it's an inherited project, too many lines to convert over!
Dim dt As DataTable
dt = BindReport()
rpt.SetDataSource(dt)
Dim reportDate As DateTime = Session("CurrentPayPeriod")
' Tell the browser this is a PDF document so it will use an appropriate viewer.
Response.Buffer = True
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = "application/pdf"
rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, False, "Timesheet Report")
Dim conString As String = System.Configuration.ConfigurationSettings.AppSettings("connectString")
Dim con As SqlConnection = New SqlConnection(conString)
con.Open()
Dim cmd As New SqlCommand("usp_GetReportData", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@SelectedDate", SqlDbType.Date).Value = CDate(Session("ReportPeriod"))
cmd.Prepare()
Dim sqlAdapter As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dtReport As DataTable = New DataTable()
sqlAdapter.Fill(dtReport)
con.Close()
Return dtReport
End Function
Wednesday, September 01, 2010
Summer 2010
Hard to believe it's the last official week of summer - school starts next Tuesday, back to the old schedule! And hard to believe my daughter's already a third grader, time goes by!
So what have I been up to lately? SharePoint 2010 architecture. Haven't done a ton of coding lately, but I have inherited an ASP.Net application and have another one in the works. Did some coding with Silverlight & the Client Object Model for 2010 - blog post coming - it is sweet.
COM (the new COM, that is) is an EXCELLENT way to continue to deploy code to SharePoint, but do so without having to bug your administrators or your Change Management team. The code runs on the client, so no consumption of server resources, and the code can do only what the user can do, so the risk of deleting all sites on the farm is minimized.
Have also been looking at multitenancy. This is going to be big with 2010 - being able to partition off multiple companies on the same set of hardware, w/o needing completely separate farms.
Look for more blog entries about all of the above...really...I promise...
So what have I been up to lately? SharePoint 2010 architecture. Haven't done a ton of coding lately, but I have inherited an ASP.Net application and have another one in the works. Did some coding with Silverlight & the Client Object Model for 2010 - blog post coming - it is sweet.
COM (the new COM, that is) is an EXCELLENT way to continue to deploy code to SharePoint, but do so without having to bug your administrators or your Change Management team. The code runs on the client, so no consumption of server resources, and the code can do only what the user can do, so the risk of deleting all sites on the farm is minimized.
Have also been looking at multitenancy. This is going to be big with 2010 - being able to partition off multiple companies on the same set of hardware, w/o needing completely separate farms.
Look for more blog entries about all of the above...really...I promise...
Monday, April 12, 2010
Visual Studio 2010 web parts and the type could not be found or it is not registered as safe
Not the story I'll ready to my daughter tonight, but the tale of a rename gone bad. When you're creating a web part in SharePoint 2010, and you rename your items from VisualWebPart1 to MyCoolWebPart, perform a Search in the Entire Solution scope for any remaining remnants of VisualWebPart1. There were a few...fix them up and your web part will register safely just fine & you'll be able to add it to your web part page.
Friday, March 12, 2010
SharePoint Saturday, speaking on workflow
It has been so busy it's about time I've reported this! I'm giving a talk at SharePoint Saturday in Ann Arbor on 3/13. The talk will be the SharePoint 2010 Workflow Smackdown. We'll be taking a look at SharePoint Designer 2010 & see if it's a contender for building workflows, compared to Visual Studio 2010.
As a developer, my first inclination is to go to the 'real thing', crack open Visual Studio and build out a new workflow project. But if my administrator won't let me deploy custom code, then what? In the 2007 days it would be worth the battle; we could create workflows in SPD 2007 but seemed it was always one action short of what I needed.
So can SPD 2010 help out? In short, yes! It has a lot more capability for workflow development, but I think more importantly it is a tool a (knowledgable) end user could use. Especially with Visio 2010 as the workflow designer tool, never did like trying to lay out the workflow in SPD 2007, wasn't visual enough.
Of course, that does mean that user needs Visio 2010, and SPD 2010. SPD 2010 will still be free, but Visio of course is licensed.
Now, if your environment lets you deploy custom code, and you know your way around .Net development, should you even bother with SPD? Good question. I'd have to vote it is worth considering, from a maintenance standpoint. One of the things us developers always do (me too!) is to create some great crazy code, deploy it, it works, great, and we move on. But then down the road darn that thing, it's having a problem. With SPD, because it is declarative, debugging and/or modifying is easier...in fact you could even get that power user to take over! So it is something to consider.
With that - here's the link to the presentation: SharePoint Saturday Workflow Smackdown
Note that if you want to play around with workflows, I recommend making sure you've first enabled the User Profile Import Service - without it, if you assign a workflow item & wait for the approval to kick in, you'll get a nice REJECTED instead. No email address. I also use SMPT4DEV to test the email messages - much easier than standing up Exchange! It's really handy.
As a developer, my first inclination is to go to the 'real thing', crack open Visual Studio and build out a new workflow project. But if my administrator won't let me deploy custom code, then what? In the 2007 days it would be worth the battle; we could create workflows in SPD 2007 but seemed it was always one action short of what I needed.
So can SPD 2010 help out? In short, yes! It has a lot more capability for workflow development, but I think more importantly it is a tool a (knowledgable) end user could use. Especially with Visio 2010 as the workflow designer tool, never did like trying to lay out the workflow in SPD 2007, wasn't visual enough.
Of course, that does mean that user needs Visio 2010, and SPD 2010. SPD 2010 will still be free, but Visio of course is licensed.
Now, if your environment lets you deploy custom code, and you know your way around .Net development, should you even bother with SPD? Good question. I'd have to vote it is worth considering, from a maintenance standpoint. One of the things us developers always do (me too!) is to create some great crazy code, deploy it, it works, great, and we move on. But then down the road darn that thing, it's having a problem. With SPD, because it is declarative, debugging and/or modifying is easier...in fact you could even get that power user to take over! So it is something to consider.
With that - here's the link to the presentation: SharePoint Saturday Workflow Smackdown
Note that if you want to play around with workflows, I recommend making sure you've first enabled the User Profile Import Service - without it, if you assign a workflow item & wait for the approval to kick in, you'll get a nice REJECTED instead. No email address. I also use SMPT4DEV to test the email messages - much easier than standing up Exchange! It's really handy.
Wednesday, January 06, 2010
Access Denied with SP custom web service
This one was bugging me for a while! I have an application that has a SharePoint workflow, that then calls a custom web service that interacts with the SP object model (long story...has to do with credentials).
Things were working fine until of late I started getting Access Denied messages when invoking a web service. In particular, the web service would fail when I tried to intantiate a web object, either through .RootSite or .OpenWeb(). I tried all sorts of combinations of Information Policy settings in Central Admin, switching to a different app pool account in IIS, impersonation in the code, you name it.
Now, the curious thing was it appeared the 401 Access Denied message was coming from IIS, not from SharePoint. I could attach to the debugger, and my code definitely was being executed, just failing at that .RootSite/.OpenWeb call. More curious, switching from Integrated Autheticatio to Anonymous allowed the web service call to work fine.
Well, I found a reference to an issue introduced by the .Net 3.5 SP1 Framework with the loopback adapter. Since the web service and the workflow were executing on the same server, I think it was the Framework that was causing the problem, too many repeat calls to the same server. When I changed the URL for my web service from http:// to http://localhost, the service ended up working fine. Repeated on a second server hosting the same instance.
Time to update the deployment documentation!!
And, happy 2010! Learned PowerShell yet?
Things were working fine until of late I started getting Access Denied messages when invoking a web service. In particular, the web service would fail when I tried to intantiate a web object, either through .RootSite or .OpenWeb(). I tried all sorts of combinations of Information Policy settings in Central Admin, switching to a different app pool account in IIS, impersonation in the code, you name it.
Now, the curious thing was it appeared the 401 Access Denied message was coming from IIS, not from SharePoint. I could attach to the debugger, and my code definitely was being executed, just failing at that .RootSite/.OpenWeb call. More curious, switching from Integrated Autheticatio to Anonymous allowed the web service call to work fine.
Well, I found a reference to an issue introduced by the .Net 3.5 SP1 Framework with the loopback adapter. Since the web service and the workflow were executing on the same server, I think it was the Framework that was causing the problem, too many repeat calls to the same server. When I changed the URL for my web service from http://
Time to update the deployment documentation!!
And, happy 2010! Learned PowerShell yet?
Wednesday, November 18, 2009
More on SP 2010 & Windows 7 install
I was getting a User Not Found error when I tried installing SharePoint 2010 on my Windows 7 host. The install log didn't let me know which user, and since it's a Standalone install I didn't specify any user accounts anywhere.
I was installing using my usual corporate domain login on my laptop, but I wasn't connected to the domain at the time (yes, I was installing away during my daughter's dance class I gotta confess!). The ID was given Administrator permission, and I had UAC turned off.
The fix was to log on with the local admin account created during the Windows install. Not sure if it's because this ID really is admin, or if there wasn't a need to contact the domain. In any case, finally got past configuration task 2 of 10!
Well not quite, blogged too soon. The install failed on Step 8 of 10 with:
Exception: Microsoft.Office.Server.UserProfiles.UserProfileException: Unrecognized attribute 'allowInsecureTransport'. Note that attribute names are case-sensitive. (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebClients\Profile\client.config line 56)
It looks like there's a hotfix for this, it's a new setting apparently for WCF coming with .Net Framework 4. To get the hotfix one needs to go through the usual channels vs requesting the fix right off the page, so instead I just deleted the attribute entirely from the .config file, restarted the Configuration wizard, and it completed successfully.
I was installing using my usual corporate domain login on my laptop, but I wasn't connected to the domain at the time (yes, I was installing away during my daughter's dance class I gotta confess!). The ID was given Administrator permission, and I had UAC turned off.
The fix was to log on with the local admin account created during the Windows install. Not sure if it's because this ID really is admin, or if there wasn't a need to contact the domain. In any case, finally got past configuration task 2 of 10!
Well not quite, blogged too soon. The install failed on Step 8 of 10 with:
Exception: Microsoft.Office.Server.UserProfiles.UserProfileException: Unrecognized attribute 'allowInsecureTransport'. Note that attribute names are case-sensitive. (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebClients\Profile\client.config line 56)
It looks like there's a hotfix for this, it's a new setting apparently for WCF coming with .Net Framework 4. To get the hotfix one needs to go through the usual channels vs requesting the fix right off the page, so instead I just deleted the attribute entirely from the .config file, restarted the Configuration wizard, and it completed successfully.
Tuesday, November 17, 2009
Installing SharePoint 2010 Beta on Windows 7 or Windows Vista
It is indeed possible! Microsoft has a good set of instructions here:
http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx
Note that the step where you copy the long Windows command needs to be concatenated to one single line. I copied the text to Notepad, then pulled things back to a single line & it worked fine.
Enjoy!
http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx
Note that the step where you copy the long Windows command needs to be concatenated to one single line. I copied the text to Notepad, then pulled things back to a single line & it worked fine.
Enjoy!
Wednesday, November 11, 2009
SharePoint 2010 and VirtualBox
Others have mentioned this already but I just wanted to give my vote of support also...need to run SharePoint 2010 but only have a 32 bit OS host? If your equipment can run 64 bit OS (check out your computer's Windows Experience page details report in the "View and Print Details" link - under system there's a setting for "64 bit capable", hope it's a yes!!) - then check out Sun's Virtual Box tool.
Virtual Box is similar to VMWare, both of which allow you to run a 64 bit guest on a 32 bit OS, provided your computer is 64 bit capable. Nice!
Link to Virtual Box
Now just hang in there a few more weeks until the public beta is released!!
Virtual Box is similar to VMWare, both of which allow you to run a 64 bit guest on a 32 bit OS, provided your computer is 64 bit capable. Nice!
Link to Virtual Box
Now just hang in there a few more weeks until the public beta is released!!
Monday, September 14, 2009
Custom web service - 401 Unauthorized
So I remember what I did for next time...
I have a custom web service that interacts with SharePoint. I created a new method so I could test the service from a Windows Form application - invokes a method without any parameters, then returns an item from a SharePoint list. Simple enough.
Of course, never say "simple enough"! In my code I could get a handle to the SPSite object, and the SPWeb object, but when I tried to get an SPList object or do an rootweb.Lists.Count property check I'd get a "thread was being aborted" message, and a 401 Unauthorized back. I increased the timeout in my proxy class, increased the HttpRuntime timeout, all no luck.
But then in my web service ASMX class, I added in SPSecurity.RunWithElevatedPrivileges - and poof the web service now works.
I have a custom web service that interacts with SharePoint. I created a new method so I could test the service from a Windows Form application - invokes a method without any parameters, then returns an item from a SharePoint list. Simple enough.
Of course, never say "simple enough"! In my code I could get a handle to the SPSite object, and the SPWeb object, but when I tried to get an SPList object or do an rootweb.Lists.Count property check I'd get a "thread was being aborted" message, and a 401 Unauthorized back. I increased the timeout in my proxy class, increased the HttpRuntime timeout, all no luck.
But then in my web service ASMX class, I added in SPSecurity.RunWithElevatedPrivileges - and poof the web service now works.
Thursday, July 16, 2009
TreeViewDataSource ShowDoclibChildren
Been spending my time getting my web site to be Section 508 compliant. I'm using the CSS Friendly Control Adapters off of CodePlex. I got the top level menu working nicely, then on to the Site Hierarchy tree view. Headache! My customer wants to see the first two levels expanded in the tree, so not just the libraries but the first two folders in the library also.
When I enabled the control adapter in the compat.browser file, I lost those subtree items - worked fine when I have the out of the box tree view set up, but when I switched to the control adapter, I lost the subitems - only the doc lib appeared, not the folders.
Digging around, I saw that there's a property for the tree view data source object called "ShowDocLibChilden" and "ShowFolderChilden" - set these to 'true' and hey hey there are my items!
Tomorrow's fun will be to get the CSS to work correctly, the indenting and expand/collapse aren't working right, but that'll be for tomorrow's post-coffee labor.
BTW, seems my blog comments are mostly spam, Japanese spam at that (is that tastier? I did like the teriyaki burgers at MOS Burger in Japan, burger patty, sweet soy sauce, rice 'bun' instead of bread!) - so send comments directly to my email, smushkat@hotmail.com
When I enabled the control adapter in the compat.browser file, I lost those subtree items - worked fine when I have the out of the box tree view set up, but when I switched to the control adapter, I lost the subitems - only the doc lib appeared, not the folders.
Digging around, I saw that there's a property for the tree view data source object called "ShowDocLibChilden" and "ShowFolderChilden" - set these to 'true' and hey hey there are my items!
Tomorrow's fun will be to get the CSS to work correctly, the indenting and expand/collapse aren't working right, but that'll be for tomorrow's post-coffee labor.
BTW, seems my blog comments are mostly spam, Japanese spam at that (is that tastier? I did like the teriyaki burgers at MOS Burger in Japan, burger patty, sweet soy sauce, rice 'bun' instead of bread!) - so send comments directly to my email, smushkat@hotmail.com
Wednesday, May 20, 2009
Project Server 7882: Unable to start services process.
Early morning panic attack! We did a database move of our Project Server database over the weekend. Rather than use the renameserver command, we figured to take the cautious route and set up an alias from the old SQL Server to the new SQL Server - that worked very nicely.
One of the other changes made was to start up the Search Service - previously we had the Office and SharePoint search services disabled, as they were causing errors with the old SQL Server - long story about that! In doing so, I had to update the SSP config page to start up the services.
Looking in the event log, there were a ton of errors complaining "unable to start service process. SSP: Service: ProjectQueueService", then the same error with the pjevtsvc instead. There was also a .Net Runtime 2.0 Error, EventType clr20R3, microsoft.office.project.server. system.nullreferenceexception.
I stopped & started both the Timer and Queue services, but that didn't help. Tried restarting both a few times. Tried an IISReset. Still didn't help.
My service account was set up to Log On As Service in the Local Security Settings User Rights Assignments, Log On as a service, so that wasn't it either.
What did the trick was to change the account used for both services in the Services control panel. The services were set to use the Farm account - I switched this back to using the SSP account instead, restarted the services, and we're up & running with nice quiet logs.
One of the other changes made was to start up the Search Service - previously we had the Office and SharePoint search services disabled, as they were causing errors with the old SQL Server - long story about that! In doing so, I had to update the SSP config page to start up the services.
Looking in the event log, there were a ton of errors complaining "unable to start service process. SSP:
I stopped & started both the Timer and Queue services, but that didn't help. Tried restarting both a few times. Tried an IISReset. Still didn't help.
My service account was set up to Log On As Service in the Local Security Settings User Rights Assignments, Log On as a service, so that wasn't it either.
What did the trick was to change the account used for both services in the Services control panel. The services were set to use the Farm account - I switched this back to using the SSP account instead, restarted the services, and we're up & running with nice quiet logs.
Sunday, April 19, 2009
The workflow failed to start due to an internal error
Another fun bout with SharePoint! This one was a good challenge. I have a big WSP solution built with the VSEWSS extensions, and I wanted to add in my workflow to the solution. The workflow had been working just fine, so I merged in the project file, created a new feature in the WSP View of the project, added in the reference to the project output, and we're good to go!
Except after I associated the workflow and tried to use it, I got the very helpful error "the workflow failed to start due to an internal error". Nothing in the Application viewer, in the 12 Hive logs, just the friendly ol error message and nothing more.
We'll leave off all the things I tried (removing old copies of the workflow, new GUIDs, new namespace, new...well, you get the idea) and here's what did work: when I associated the workflow, I created a new Task and Workflow History list rather than use the ones that were in the site definition. Did that and the workflow is flowing along now. Nice!
I do indeed have a copy of the Tasks list in the site definition.
Except after I associated the workflow and tried to use it, I got the very helpful error "the workflow failed to start due to an internal error". Nothing in the Application viewer, in the 12 Hive logs, just the friendly ol error message and nothing more.
We'll leave off all the things I tried (removing old copies of the workflow, new GUIDs, new namespace, new...well, you get the idea) and here's what did work: when I associated the workflow, I created a new Task and Workflow History list rather than use the ones that were in the site definition. Did that and the workflow is flowing along now. Nice!
I do indeed have a copy of the Tasks list in the site definition.
Friday, March 13, 2009
Convergence 2009
Just came back from working at the HP Booth at Convergence 2009, the Microsoft Dynamics show at New Orleans this year. I learned a lot about Dynamics, and in particular about CRM. (note, I work for EDS, an HP Company). We were the Platinum sponsor of the event & had a nice big booth in the Partner Expo area. I was there discussing SharePoint & how it can work together with CRM. I'll be blogging a bit about that over the next few weeks. Seems to be good stuff!
Friday, February 27, 2009
Magic Jack
One last post for today. Now I normally want this blog to stay focused on SharePoint & related products - like I said this is my virtual memory site, helps me remember stuff I worked on way back when - but I wanted to post about the Magic Jack.
I've gone wireless at home for some time now, but working from home I didn't want to chew up my cell minutes on those long conference calls. I had been using Skype, and was generally pleased with the quality and price, but I did have a few bad/dropped connections and on one conf call folks said I sounded like I was talking in a fish bowl 800 miles away. Not good, especially since the call was with some MS Professional Services folks!
Over the weekend the wife and I saw an ad on TV for The Magic Jack, only $19.95!! Ever skeptical, I decided to try it out anyway. I bought the kit at the local Radio Shack for $40, which includes the first year's service, and I gotta say, I'm impressed. The call quality is quite clear, it's easier to use than Skype - none of that 001 - 866 - 1235466 * thing to dial out, just pick up the phone and dial the number. I used it quite a bit yesterday and my audio was fine, and no one mentioned that fish bowl. Looks like a nice product.
If it turns out to be otherwise I'll let you know! There's a deal with it too, $60 for 5 years of service, instead of $20 per year (OK, $59.95 and $19.95 respectively but a spade is....)
I've gone wireless at home for some time now, but working from home I didn't want to chew up my cell minutes on those long conference calls. I had been using Skype, and was generally pleased with the quality and price, but I did have a few bad/dropped connections and on one conf call folks said I sounded like I was talking in a fish bowl 800 miles away. Not good, especially since the call was with some MS Professional Services folks!
Over the weekend the wife and I saw an ad on TV for The Magic Jack, only $19.95!! Ever skeptical, I decided to try it out anyway. I bought the kit at the local Radio Shack for $40, which includes the first year's service, and I gotta say, I'm impressed. The call quality is quite clear, it's easier to use than Skype - none of that 001 - 866 - 1235466 * thing to dial out, just pick up the phone and dial the number. I used it quite a bit yesterday and my audio was fine, and no one mentioned that fish bowl. Looks like a nice product.
If it turns out to be otherwise I'll let you know! There's a deal with it too, $60 for 5 years of service, instead of $20 per year (OK, $59.95 and $19.95 respectively but a spade is....)
DR with SQL backups and PSCONFIG
As promised...for my client we are only taking SQL Server backups of the databases used by SharePoint, although we may soon be taking disk image backups as well, but that's another story!
Anyway, I had to put together a DR plan documenting the steps to recover SharePoint. There's a great step by step on how to do this for Project Server, posted here. Great article, but there was one thing I didn't understand after reading this...what about my IIS sites? I wasn't sure if I had to create the IIS sites needed for my web apps before I ran that PSCONFIG CONFIGDB command.
Turns out is is NOT necessary. The first thing that command does is to unprovision the provisioned Central Admin site. We follow a standard deployment guide & use the same ports for Central Admin & the Shared Services Provider on all our installs, so even though I did use that same port in the steps prior to the PSCONFIG CONFIGDB step, not necessary. After unprovisioning the site, the process then creates the web apps, the IIS sites, links in the content databases, even for the SSP. Worked just fine.
Now, one last question...what about SSL? Does that also get configured after the IIS site is created? I doubt it, and I need to ensure the existing server's private key is saved off somewhere so we can reinstall it. I need to do one more test on the DR process, I'll let you know what happens.
Anyway, I had to put together a DR plan documenting the steps to recover SharePoint. There's a great step by step on how to do this for Project Server, posted here. Great article, but there was one thing I didn't understand after reading this...what about my IIS sites? I wasn't sure if I had to create the IIS sites needed for my web apps before I ran that PSCONFIG CONFIGDB command.
Turns out is is NOT necessary. The first thing that command does is to unprovision the provisioned Central Admin site. We follow a standard deployment guide & use the same ports for Central Admin & the Shared Services Provider on all our installs, so even though I did use that same port in the steps prior to the PSCONFIG CONFIGDB step, not necessary. After unprovisioning the site, the process then creates the web apps, the IIS sites, links in the content databases, even for the SSP. Worked just fine.
Now, one last question...what about SSL? Does that also get configured after the IIS site is created? I doubt it, and I need to ensure the existing server's private key is saved off somewhere so we can reinstall it. I need to do one more test on the DR process, I'll let you know what happens.
SSL Exporting to a .PFX....not!
Yesterday I had a bit of a panic. I had a change request scheduled to publish my Project Server site over to our ISA Server. Normally to do this, one goes into the Certificates MMC snap in, locates the Personal certificate assigned to the server, and export it as a .PFX file.
Well, the option to export to .PFX was grayed out, with a warning about "the associated private key cannot be found" - but on the screen where I view the SSL certificate, I was told that there is a private key associated with this certificate. Since ISA Server requires the private key, this was going to be a show stopper!
Digging around I did find one helpful post on the Verisign site: http://forums.iis.net/p/1154109/1888980.aspx
This post lead to me look in the directory C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys, and then further, I was able to locate the file (named with a GUID) in the MachineKeys folder with the time stamp of when we installed the SSL certificate. Turns out even though I'm domain admin, that folder was not owned by the local Administrators group, and that further that GUID named key was owned only by the guy who installed the cert and SYSTEM - Domain Admins & the box admins didn't have permissions to the file or to that folder.
So once I took care of that, changing the ownership on that GUID file & then granting Full Control rights to that key, I was then able to export the certificate as a .PFX file...big relief!!!
Well, the option to export to .PFX was grayed out, with a warning about "the associated private key cannot be found" - but on the screen where I view the SSL certificate, I was told that there is a private key associated with this certificate. Since ISA Server requires the private key, this was going to be a show stopper!
Digging around I did find one helpful post on the Verisign site: http://forums.iis.net/p/1154109/1888980.aspx
This post lead to me look in the directory C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys, and then further, I was able to locate the file (named with a GUID) in the MachineKeys folder with the time stamp of when we installed the SSL certificate. Turns out even though I'm domain admin, that folder was not owned by the local Administrators group, and that further that GUID named key was owned only by the guy who installed the cert and SYSTEM - Domain Admins & the box admins didn't have permissions to the file or to that folder.
So once I took care of that, changing the ownership on that GUID file & then granting Full Control rights to that key, I was then able to export the certificate as a .PFX file...big relief!!!
Monday, February 09, 2009
The Startup Disk Could Not Be Written To
Well that says it all, ey? I've been working on some DR testing (stay tuned, post coming!!) to recover a Project Server deployment. I created my original VPC, up to the point where the DR stuff kicks in - installation of SharePoint, mainly; so the VPC has the host OS, joined the AD domain, has SQL Server installed.
I copied the VPC at this point then finished up installing the rest of the components - SharePoint, Project Server, service packs, December update, etc.
When I then went to boot up the DR VPC, I was told very nicely that "the startup disk could not be written to"! The VHD file had only the Archive bit set, was not set to be read-only.
I am using Vista w/o SP1 as my host OS. I went into the security settings for the file & saw that the file has entries for System, Administrators & Users. I thought my ID is a member of Administrators, but Users was marked for read-only rights, no Modify or Write rights. So I added in Modify and Write, must have got it right (heh) because then the VHD worked just fine.
I copied the VPC at this point then finished up installing the rest of the components - SharePoint, Project Server, service packs, December update, etc.
When I then went to boot up the DR VPC, I was told very nicely that "the startup disk could not be written to"! The VHD file had only the Archive bit set, was not set to be read-only.
I am using Vista w/o SP1 as my host OS. I went into the security settings for the file & saw that the file has entries for System, Administrators & Users. I thought my ID is a member of Administrators, but Users was marked for read-only rights, no Modify or Write rights. So I added in Modify and Write, must have got it right (heh) because then the VHD worked just fine.
Monday, January 12, 2009
Search related errors...
Happy 2009! The new year kicked off with an interesting challenge. I went to the SharePoint environment I've been supporting to do a search, and oddly, there was no Search box on the home page. No biggie, went to Search Center, and when I put in my search terms I got the beloved "Unknown Error" back. Yikes!
Same thing if I tried opening up any of the Search config pages in SSP Config. The logs had all sorts of stuff - missing "S2LeftNav_Administration", missing features, and the SSP Search DB had some broken stored procedures, Proc_MSS_Recompile was missing, proc_MSS_FlushTemp0 was missing some arguements, the Microsoft.SharePoint.Portal.WebControls.SearchBoxEx control was missing, all kinds of stuff.
Found a post where someone had applied the July Infrastructure Update and had seen some of these errors, and had a fix of updating certain specific files. But, I didn't apply that fix as one of my colleagues said there was an issue with the Alternate Access Mapping (subsequently fixed in the October update).
Well, looking back into the Event Viewer, I saw that 'someone did something' - Dec 19th a security patch for SharePoint was applied to close up a hole with Search. With the odd state of things, I guessed that whomever applied the update probably freaked out when the SharePoint Configuration Wizard started & bailed out - bad idea!! Sure enough, re-running the Wizard (with screen caps which are going into an admin guide thank you very much indeed) cleared up the problems.
Next weirdness was a 10 hour incremental crawl, and the indexer showing "Computing ranking" for a long spell. Well, stopped the crawl, reset the index, then did a full crawl, then about 10 minutes later (not a heap of content) started getting search results again.
But of course, Search not working for three weeks ought to have raised at least one trouble ticket!! Looks like it's time for some end user education...
Same thing if I tried opening up any of the Search config pages in SSP Config. The logs had all sorts of stuff - missing "S2LeftNav_Administration", missing features, and the SSP Search DB had some broken stored procedures, Proc_MSS_Recompile was missing, proc_MSS_FlushTemp0 was missing some arguements, the Microsoft.SharePoint.Portal.WebControls.SearchBoxEx control was missing, all kinds of stuff.
Found a post where someone had applied the July Infrastructure Update and had seen some of these errors, and had a fix of updating certain specific files. But, I didn't apply that fix as one of my colleagues said there was an issue with the Alternate Access Mapping (subsequently fixed in the October update).
Well, looking back into the Event Viewer, I saw that 'someone did something' - Dec 19th a security patch for SharePoint was applied to close up a hole with Search. With the odd state of things, I guessed that whomever applied the update probably freaked out when the SharePoint Configuration Wizard started & bailed out - bad idea!! Sure enough, re-running the Wizard (with screen caps which are going into an admin guide thank you very much indeed) cleared up the problems.
Next weirdness was a 10 hour incremental crawl, and the indexer showing "Computing ranking" for a long spell. Well, stopped the crawl, reset the index, then did a full crawl, then about 10 minutes later (not a heap of content) started getting search results again.
But of course, Search not working for three weeks ought to have raised at least one trouble ticket!! Looks like it's time for some end user education...
Subscribe to:
Posts (Atom)